abstract class Instrument {
  int i; // storage allocated for each
  public abstract void play();
  public String what() {
    return "Instrument";
  }
  public abstract void adjust();
}和
abstract class Instrument {
  int i; // storage allocated for each
  public void play();
  public String what() {
    return "Instrument";
  }
  public void adjust();
}是不是一样的类???

解决方案 »

  1.   

    自己试验了一下,在一个abstract类中必须有至少有一个abstract的方法
      

  2.   

    treeroot是对的,即使不含抽象方法,类也可被声明为抽象的。
      

  3.   

    abstract class Instrument {
      int i; // storage allocated for each
      public void play();
      public String what() {
        return "Instrument";
      }
      public void adjust();
    }这段代码编译没有问题吗?
      

  4.   

    楼上的,你的代码有问题我在eclipse下实验了,:),你自己再试试,呵呵
      

  5.   

    abstract class Instrument {
      int i; // storage allocated for each
      public void play(){};
      public String what() {
        return "Instrument";
      }
      public void adjust(){};
    }ok......{} i forget
      

  6.   

    abstract class Instrumentx {
      int i; // storage allocated for each
      public abstract void play();
      public String what() {
        return "Instrument";
      }
      public abstract void adjust();
    }

    abstract class Instrument {
      int i; // storage allocated for each
      public void play(){};
      public String what() {
        return "Instrument";
      }
      public void adjust(){};
    }
    我认为区别就是:
    如果是abstract方法,不允许有{}大括号,即实现,这是肯定的了。
    如果不是abstract方法,必须有{}大括号,哪怕实现为空
      

  7.   

    应该是这样的,如果abstract中没有被事例化的函数必须标明是abstract
      

  8.   

    kill8108(日月之光) ( ) 信誉:105  2006-03-28 14:22:00  得分: 0  
     
     
       呵,抽象类中可没有抽象方法的,只不过有抽象方法的就一定要声明为抽象类啦!
      
     
    -------------------
    支持
      

  9.   

    刚刚发现这样程序也可以运行,呵呵,抽象类中可没有抽象方法的
    public abstract class d {
    public static void main(String[] args)  {
    System.out.println(111111);
    }
    }
      

  10.   

    java交流群-22065798
    互相学习 共同提高
      

  11.   

    如果定义了抽象方法,就一定要定义成抽象类,还有抽象类不能用static和private
      

  12.   

    同意treeroot(旗鲁特) 
        另外说下:  在抽象类中定义方法  1: public abstract void adjust();
                                        2:public void adjust(){}; 空实现,子类覆盖!
      

  13.   

    同意treeroot(旗鲁特),emperor_he(但丁),haitao8686() 
    你们太帅了
    个人觉得 抽象类是个超级方便实用的类,通过向上转型,实现不同对象(都继承抽象类或实现接口的)统一调用的功能
      

  14.   

    abstract class Instrument {
      int i; // storage allocated for each
      public void play();
      public String what() {
        return "Instrument";
      }
      public void adjust();
    }
    这个类编译是不会通过的吧,因为在抽象类众不加abstract的方法都应该又实现的,就算是一对{}也不可以少的,嘿嘿~~~
      

  15.   

    cocosunshine(我爱阳光) ( ) 信誉:99  2006-3-29 13:12:47  得分: 0  
     
     
       
    如果定义了抽象方法,就一定要定义成抽象类,还有抽象类不能用static和private  
     
    -===============================================抽象类中可以用的吧!
      

  16.   

    1.抽象类中可以没有抽象方法
    2.抽象类的修饰符不能为static和private,类中的方法是可以用static和private
      来修饰的
      

  17.   

    to:hsuyuan(一切无法解释的问题都是人品问题)
    你可以写一个测试类,在你抽象类方法加上private,或者static测试一下就可以发现了。:)
      

  18.   

    .抽象类的修饰符不能为static和private,类中的方法是可以用static和private来修饰的类的修饰符只能是public abstract 和final ,那里来的static和private,无论抽象还是非抽象类都不行。