我在一本书上看到过这么段话:
抽象类不能有对象,但他们可以用来创建对象引用,因为Java运行时多态性是通过使用父类引用实现的.因此,对象可以用来创建对抽象类的引用,抽象类可以指向子类的对象.初学Java没多久,对这段话有点不太能理解.谁能帮忙解释下?尽量详细先,最好附带个简单的例子.

解决方案 »

  1.   

    abstract class Base{}
    class Derived extends Base{
    }//Base b = new Base();//error
    Base b = new Derived();
      

  2.   

    抽象类不能直接建立它的对象,只能通过别的类继承它来建立对象
    如:
    abstract class A{
      public abstract double setArea();
    }
    class B extends A
    {
       double a,b;
       B(double a,double b)
       {
          this.a=a;
          this.b=b;
       }
       public double setArea()
       {
          return a*b;
       }
    }
    一个抽象类只关心它的子类是否具有某种功能,并不关心功能的实现,功能的具体的实现由子类完成。
    如果一个类是抽象的子类,它必须具体实现父类的abstract方法.
      

  3.   

    believefym(feng) 例子是有了.但还是不太能理解.能否麻烦你解释下以下2句话的意思?最好能详细一点点,谢谢..
    他们可以用来创建对象引用,因为Java运行时多态性是通过使用父类引用实现的
    对象可以用来创建对抽象类的引用,抽象类可以指向子类的对象
      

  4.   

    能否从字面上解释一下下面2句话的意思呢?
    他们可以用来创建对象引用,因为Java运行时多态性是通过使用父类引用实现的
    对象可以用来创建对抽象类的引用,抽象类可以指向子类的对象
      

  5.   

    抽象类不能被实例化,但是可以指向一个子类的实例
    从而可以“使用”前面已经说的很多了
    我这里提供一个链接,希望有所帮助
    http://www.ahtvu.ah.cn/jxc1/zhykch/5101/fudao5.files/frame.htm