知识卡片
继承与多态:为相似而不同的对象建模
内容
当一批对象绝大部分属性相同、只有少数特性不同时(比如”可充电激光器”比普通激光器多一个”充能”方法,其余完全一样),继承允许一个新类直接复用已有类的全部特性,只需额外声明新增或改写的部分,避免了把公共部分重复定义一遍。继承带来的一个自然后果是多态:同一条”画出自己”的消息发给不同形状(圆形、方形、三角形)的对象,各自会执行完全不同的绘制逻辑——调用方不需要关心接收消息的对象具体是什么形状,只管发出统一的请求,由每个对象自己决定如何针对性地响应。发散:多态的价值在于它把”这是什么类型,该用哪套逻辑处理”这个判断,从调用方的一堆 if-else 分支里挪走,转交给接收消息的对象自己去处理——调用方因此不必随着新类型(新形状)的增加而不断修改自己的判断逻辑,这正是[[RISC 与 CISC 的设计哲学分歧]]式”谁该承担某个决策的复杂度”这一权衡在软件设计层面的体现。
参考来源
《计算机科学概论》第6章《程序设计语言》