zoukankan      html  css  js  c++  java
  • java 多态学习随笔

    抽象类和接口的异同:

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

    不同点:

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

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

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

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

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

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

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

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

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

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

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

    多态时:

    1.成员变量:

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

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

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

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

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

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

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

    3.静态函数:

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

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

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

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

  • 相关阅读:
    洛谷 1516 青蛙的约会
    洛谷 P2626 斐波那契数列(升级版)
    vijos 1034 家族(水题日常)
    洛谷 P1082 同余方程
    洛谷 P1181 数列分段Section I(水题日常)
    洛谷 P1531 I Hate It
    codevs 2728 整数帝国问题(水题日常)
    [BZOJ1467]Pku3243 clever Y
    bzoj1070: [SCOI2007]修车
    bzoj 4650: [Noi2016]优秀的拆分
  • 原文地址:https://www.cnblogs.com/wangxh92/p/3671953.html
Copyright © 2011-2022 走看看