码迷,mamicode.com
首页 > 编程语言 > 详细

java多态---ABC案列

时间:2016-07-12 15:29:58      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

  

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

java多态---ABC案列

标签:

原文地址:http://www.cnblogs.com/huangytao/p/5663404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!