Java多态简单演示
一、继承
二、方法重写
三、父类引用指向子类对象Fu f=New Zi();
public class Test{
public static void main(String[] ags){
A a,c;
B b,d;
a=new A();
b=new B();
c=new B();//父类引用,子类对象
a.a();
//a.b();//编译不通过
a.c();
b.a();
b.b();
b.c();
c.a();
//c.b();//编译不通过 子类方法隐藏
c.c();
d=(B)c;
d.a();
d.b();//子类方法重新获得
d.c();
System.out.println("a:"+a.getClass());
System.out.println("b:"+b.getClass());
System.out.println("c:"+c.getClass());
System.out.println("d:"+d.getClass());
//有趣的现象
//c=(B)c;
//c.b();//编译不通过
}
}
class A{
public void a(){
System.out.println("a");
}
public void c(){
System.out.println("c in a");
}
}
class B extends A{
public void b(){
System.out.pringtln("b");
}
public void c(){
System.out.println("c in b");
}
}
输出结果:
a
c in a
a
b
c in b
a
c in b
a
b
c in b
a:class A
b:class B
c:class B
d:class B