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

    抽象类和接口的异同:

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

    不同点:

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

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

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

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

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

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

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

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

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

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

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

    多态时:

    1.成员变量:

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

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

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

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

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

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

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

    3.静态函数:

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

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

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

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

  • 相关阅读:
    sqlserver---基本函数
    sql server---外键
    数据关系模式设计的标准化
    二进制补码,原码,反码和移码
    ES6优雅的异步操作Promise()
    Vue封装公共组件TarBar
    Vue-Cli4.x配置文件路径别名
    Vue中解决新脚手架3创建项目的移动端双击屏幕放大,双手拉动放大的方法
    02.vue-router的进阶使用
    Vue路由-详细总结
  • 原文地址:https://www.cnblogs.com/wangxh92/p/3671953.html
Copyright © 2011-2022 走看看