第八章 多态

封装经过合并特征和行为来建立新的数据类型。 实现隐藏则经过将细节私有化,把接口和实现分离开来。 多态的做用是消除类型之间的耦合。java

8.1 再论向上转型

8.1.1 忘记对象类型

将接口引用当参数传递设计

8.2 起色

8.2.1 方法调用绑定

将一个方法调用同一个方法主题关联起来被称做绑定。对象

前期绑定:若在程序执行前进行绑定,叫作前期绑定。 后期绑定:在运行时根据对象的类型进行绑定。也叫动态绑定或者运行时绑定。 java中除了static方法和final方法,其余都是动态绑定。继承

8.2.2 产生正确的行为

8.2.3 可扩展性

只有非private方法才能够被覆盖,对于导出类中,对与基类中的private方法,最好采用不一样的名字。接口

8.2.4 缺陷:覆盖私有方法

private 方法被自动认为是final方法,并且对导出类是屏蔽的。扩展

8.2.5 缺陷:域与静态方法

静态方法是与类、而非与单个的对象相关联的。数据类型

8.3 构造器和多态

构造器不一样于其余种类的方法。涉及到多态时仍然是如此,尽管构造器并非有多态性(他们其实是static方法,隐式的)引用

8.3.1 构造器的调用顺序

父类的构造器老是在导出类的构造过程当中被调用,保证每一个父类的构造器都可以被调用。 调用构造器的顺序:程序

  • 调用父类构造器
  • 按照声明顺序调用成员的初始化方法。
  • 调用子类构造器的主题。

8.3.2 继承与清理

销毁的顺序和建立的顺序是相反的。方法

8.4 协变返回类型

8.5 用继承进行设计

更好的方式是首先选择“组合”。组合更加灵活

8.5 总结

多态意味着 不一样的形式。在面向对象的设计中,咱们持有从基类继承而来的相同接口,以及使用该接口的不一样形式不一样版本的多态绑定方法。 运用数据的抽象和继承,能更好的类型和创造多态的例子。

相关文章
相关标签/搜索