public abstract class two
{
 void fn()
 {}

}class one extends two
{
public static void main(String[] args)
{
two a=new two();
}
void fn()
{}
}说抽象类不能被实例化,这抽象类并没有抽象方法。要怎么让这代码无误?

解决方案 »

  1.   

    public abstract class two
    {
     void fn()
     {}

    }class one extends two
    {
    public static void main(String[] args)
    {
    two a=new two();//two是抽象类当然不能实例化了..可以one a=new one();
    }
    void fn()
    {}
    }
      

  2.   

    抽象类不能通过new实例化,可把two a=new two();改为one a = new one();
      

  3.   

    抽象类不一定要有抽象方法
    -------------------------
    问下这句怎么解释?
    -------------------------
    用abstract修饰符修饰的类 就是抽象类 可以没有抽象方法 没有规定抽象类一定要有抽象方法
      

  4.   

    抽象类不一定要有抽象方法
    它定义为抽象类,主要是显式的提醒你,比如常见的Adapater,里面没有抽象方法,但是就定义为抽象类
    以使你在使用的时候,明显的提示你去实现一下,重写其中的部分方法
    因为,对于不重写任何方法的一个Adapter类来说没有任何意义
      

  5.   

    抽象类不能创建对象。
    如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。
    继承抽象类的类在类中必须实现抽象类中的抽象方法。
    抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。
    间接继承抽象类的类可以不给出抽象方法的定义。