zoukankan      html  css  js  c++  java
  • 第8章 多态

    向上转型     泛型

    分离接口和实现

    ·【类与类耦合视角】多态:<分离>做什么~接口|怎么做~实现

          ·好处:

                ·更可读:<改善>(代码的)组织结构和可读性

                ·更可写:<创建>(可扩展的)程序

          ·作用:<消除>(类型之间的)耦合关系

          ·接口级别的代码复用

          ·别名:动态绑定||后期绑定||运行时绑定

    ·【类(对象)个体视角】“封装”:通过打包特征和行为来创建新的数据类型

    ·【开发者与使用者】“实现隐藏”:通过将细节“私有化”把接口和实现分离开来

    8.1 再论向上转型

          ·向上转型:把(某个对象的)引用<视为>(其基类型的)引用

          评:其实,不管是注入基类型还是接口,注入的可以看做是一个集合名称,具体使用时可以使用集合当中的任意元素。

          ·好处:接口||方法复用率提升

          ·编译时使用基类或接口,运行时不知道具体应该调用那个子类或实现类的方法

    8.2 转机:治愈“健忘症”

          ·绑定:将一个方法调用同一个方法主体关联起来。【对象调用方法时,对象引用作为参数传入方法】

               ·前期绑定:程序执行前绑定

               ·后期绑定:程序执行时绑定

                     ·在对象中安置某种类型信息

          ·缺陷:

               ·private方法:无法覆盖,不能重载;

               ·域:继承关系可知,父类域组成父类对象,子类域组成子类对象,故域不具 有多态性

                 ·静态方法:静态方法与单个对象没有附属关系。

    8.3 构造器和多态

          ·构造器的调用顺序:按照继承层次逐渐向上链接。因为super()调用永远在第一行,故打印结果首先是继承层次最顶层的构造器中的内容。

          ·构造器不具有多态性

          ·继承与清理:销毁的顺序应当和初始化顺序相反

               ·一个类型A的对象被其他类型B的多个对象所共享:要对被共享的对象进行 引用计数,每次附着到其他类型对象上,都要进行计数加1。销毁B类型的对象  时,调用A类型对象的dispose()方法,并进行计数减1,直到引用计数为0时,    方可清理B类型的对象。

    8.4 协变返回类型

          ·继承层次结构{A extends B},和继承层次结构{C extends D},D中有一方法返回值类型为B,C中覆盖的方法返回值类型为A,则成A为协变返回类型。

    8.5用继承进行设计

          ·RTTI:

  • 相关阅读:
    sonar6.7.2启动报错
    linux 查看/修改jdk版本
    idea一款颜值很高的theme
    生成唯一UUID
    连接池异常
    手机网页点击后出现蓝色框
    iScroll4中事件点击一次却触发两次解决方案
    base.js
    javascript与css3动画学习笔记
    javascript对象学习笔记
  • 原文地址:https://www.cnblogs.com/InformationGod/p/8519666.html
Copyright © 2011-2022 走看看