复制
收藏
提问
知识库
5 里氏代换原则 所有引用基类的地方必须能透明的使用其子类对象。 里氏替换原则包含了四层意思: 第一:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 第二:子类可以增加自己特有的方法。 第三: 覆盖或实现父类的方法时输入参数可以被放大 第四:覆盖或实现父类的方法时输出结果可以被缩小 例如: 游戏里面士兵用枪射击的类图: 思考一下,如果我们有一个玩具枪,该怎么去定义呢?父类的某些方法在子类中已经发生“畸变”, 则建 议断开父子继承关系, 采用依赖、聚合、组合等关系代 替继承。 可以在 AbstractToy 中声明将声音、形状都委托给 AbstractGun 来处理。 代码的截图:
1个月前
理解问题5 里氏代换原则 所有引用基类的地方必须能透明的使用其子类对象。 里氏替换原则包含了四层意思: 第一:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 第二:子类可以增加自己特有的方法。 第三: 覆盖或实现父类的方法时输入参数可以被放大 第四:覆盖或实现父类的方法时输出结果可以被缩小 例如: 游戏里面士兵用枪射击的类图: 思考一下,如果我们有一个玩具枪,该怎么去定义呢?父类的某些方法在子类中已经发生“畸变”, 则建 议断开父子继承关系, 采用依赖、聚合、组合等关系代 替继承。 可以在 AbstractToy 中声明将声音、形状都委托给 AbstractGun 来处理。 代码的截图:
已完成理解「5 里氏代换原则 所有引用基类的地方必须能透明的使用其子类对象。 里氏替换原则包含了四层意思: 第一:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 第二:子类可以增加自己特有的方法。 第三: 覆盖或实现父类的方法时输入参数可以被放大 第四:覆盖或实现父类的方法时输出结果可以被缩小 例如: 游戏里面士兵用枪射击的类图: 思考一下,如果我们有一个玩具枪,该怎么去定义呢?父类的某些方法在子类中已经发生“畸变”, 则建 议断开父子继承关系, 采用依赖、聚合、组合等关系代 替继承。 可以在 AbstractToy 中声明将声音、形状都委托给 AbstractGun 来处理。 代码的截图:」
展开阅读网页
更专业一些
转笔记