博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java多态---ABC案列
阅读量:6094 次
发布时间:2019-06-20

本文共 1156 字,大约阅读时间需要 3 分钟。

  

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

转载于:https://www.cnblogs.com/huangytao/p/5663404.html

你可能感兴趣的文章
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>
焊盘 往同一个方向增加 固定的长度方法 总结
查看>>
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
jquery的冒泡和默认行为
查看>>
Check failed: error == cudaSuccess (7 vs. 0) too many resources requested for launch
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
前端学习之正则表达式
查看>>