java多态---ABC案列

时间:2023-03-09 00:37:06
java多态---ABC案列

  

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();
                   }
          
以上。