标签:
class A{ public void show(){ show2(); } public void show2(){ System.out.println("我"); } } class B extends A { /* public void show(){ show2(); } */ public void show2(){ System.out.println("爱"); } } class C extends B{ public void show(){ super.show(); } public void show2(){ System.out.println("你"); } } public class DuoTaiTest4{ public static void main(String[]args){ A a=new B(); a.show(); B b=new C(); b.show(); } }
总结:
多态的成员访问特点:
方法:编译看左边,运行看右边。
继承的时候:
子类中有和父类中一样的方法,叫重写。
子类中没有父类中出现过的方法,方法就被继承过来了。
a.show( );
编译时看左边,a中有show()方法,编译时不会出错,运行时要运行B中的show方法。
(B中虽然没有写出show方法,但其实已经把A中的show继承过来了!)
b.show();
运行看右边:
public void show(){
super.show();
}
而super调用的是父类B中的show方法,B中show中又调用show2(),虽然B中也有show2(),但不要忘记,我们实际上创建的是 C 的对象,(new C( );),最后运行要看右边,不要忘记了。
public void show(){ show2(); }
以上。
标签:
原文地址:http://www.cnblogs.com/huangytao/p/5663404.html