August 2021
Intermediate to advanced
450 pages
4h 46m
Chinese
很多人认为多态性是面向对象设计的基石。面向对象设计类目的就是创建完全独立的对象。在设计良好的系统中,一个对象需要了解所有与其实现有关的问题。对象必须对自身负责,这是一条规则。独立是代码重用的重要机制之一。
正如第1章所述,多态性从字面上理解就是很多形状。当对象收到消息后,该对象必须定义一个方法来响应该消息。在继承体系结构中,所有的子类会继承其父类的接口。然而,由于每个子类是单独的实体,每个子类需要对同一条消息有独立的响应。
回顾第1章中的示例,有个类叫作Shape。该类有个行为叫作Draw。然而,如果你告诉别人绘制一个形状,第一个问题会是“什么形状?”简单地让一个人绘制一个形状是非常抽象的(事实上,Shape类中的Draw方法并不包含实现)。你必须指定你想要哪种形状。因此你要为Circle类及其他子类提供实际的实现。尽管Shape类有个Draw方法,但Circle覆盖了该方法并提供了自己的Draw方法。覆盖意味着将父类中的实现替换为自己的实现。
Read now
Unlock full access