不能new出抽象类对象,但可以定义一个抽象类的引用。
可以把一个子类对象的地址赋给抽象类的引用,然后通过抽象类的引用调用子类从父类继承过来的方法,即抽象类也可以实现多态
假设A是抽象类,B是A的子类且完全实现了A的所有抽象方法,则
A aa = new A(); //error
A aa = new B(); //OK
abstract class A
{
public abstract void f();
}
class B extends A
{
public void f()
{
System.out.println("哈哈");
}
}
public class rain
{
public static void main(String[] args)
{
//A aa1 = new A(); //error
A aa2 = null; //可以定义一个抽象类的引用 等价于 A aa2;
aa2 = new B(); //将子类对象的地址赋给抽象类的引用
aa2.f(); //用抽象类的引用访问子类的方法 这就是多态
}
}