• java 多态学习随笔


    抽象类和接口的异同:

    相同点:都是不断向上抽取而来的

    不同点:

    1.抽象类需要被继承,而且只能单独继承。

     接口需要被实现,而且可以多实现。

    2.抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。

     接口中只能定义抽象方法,必须由子类去实现。

    3.抽象类的继承,是 is a 关系,在定义该体系的基本共性内容。

     接口的实现是  like a 关系,在定义体系的额外功能。

    instanceof 例:a instanceof person 用于判断对象的具体类型,只能用于引用数据类型判断

    通常在向下转型前用于健壮性的判断。

    多态在代码中的体现:父类或者接口的引用指向其子类的对象。

    多态的好处:提高代码的扩展性,前期定义的代码可以使用后期的内容。

    多态的弊端:前期定义的内容不能使用(调用)后期子类的特有内容。

    多态时:

    1.成员变量:

      编译时,参考引用型变量所属的类中是否有调用的成员变量,有,编译成功;没有,编译失败。

      运行时,参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。

      简单的说:编译运行都参考等号的左边。

    2.成员函数(非静态):

      编译时,参考引用型变量所属的类中是否有调用函数,有,编译成功;没有,编译失败。  

      运行时,参考的是对象所属的类中是否有调用的函数。

      简单的说:编译看左边,运行看右边。

    3.静态函数:

      编译时,参考引用型变量所属的类中是否有调用的静态方法。

      运行时,参考引用型变量所属的类中是否有调用的静态方法。

      简单的说:编译和运行都看左边。

      其实对于静态方法,是不需要对象的,直接用类名调用即可。

  • 相关阅读:
    BZOJ 1096: [ZJOI2007]仓库建设
    【BZOJ1008】越狱(排列组合计数,容斥原理)
    【BZOJ1403】Divisibility Testing(数论)
    【BZOJ1225】求正整数(数论)
    高精度模板(From JCVB)
    【NOIP模拟&POJ2152】灰色的果实(树形DP)
    【BZOJ2560】串珠子(状压DP,容斥原理)
    【POJ1185】炮兵阵地(状压DP)
    【POJ3254】Corn Fields(状压DP)
    【POJ3311】Hie with the Pie(状压DP,最短路)
  • 原文地址:https://www.cnblogs.com/wangxh92/p/3671953.html
Copyright © 2020-2023  润新知