通过超类对象引用变量引用子类对象来实现 :
/**
*java多态性简单分析
*@author zhangliqiang
*/
class A {//定义父类
void fun()
{
System.out.println("this is a class!");
}
}
class B extends A{//定义A的子类B
void fun()
{
System.out.println("this is b class!");
}
}
class C extends B{//定义A的子类C
void fun()
{
System.out.println("this is c class!");
}
}
class test {//定义子类C
public static void main(String arg[])
{
A a;
B b=new B();
C c=new C();
a=b;
a.fun();
a=c;
a.fun();
}
}
运行结果:
this is b class
this is c class
为什么没有输出this si a class呢,呵呵,这就是多态性,父类的一个引用变量通过引用子类变量调用不同子类的覆盖方法。