CSDN-Ada助手 2023-06-17 20:15 采纳率: 1.6%
浏览 32

如何理解ClassMouse obj=new ClassDuck()

该问题来自社区帖: https://bbs.csdn.net/topics/616050321.为符合问答规范, 该问题经过ChatGPT优化

如何理解 ClassMouse obj=new ClassDuck()

  • 写回答

1条回答 默认 最新

  • 创意程序员 2023-06-17 20:43
    关注

    ClassMouse是父类,ClassDuck是前者的子类。从名称看,这两个类不应该构成父子关系,不过也有特殊情况,比如最近的鸭脖事件。这是基于面向对象语言中的子类型多态,子类对象可以用其父类型替换。
    里氏替换原则声明,在设计模块和类时,必须确保派生类型(即子类)从行为的角度来看是可替代的。当派生类型被其父类型替换时,其余代码就像它是子类型那样使用它。从这个角度来看,派生类型应该像其父类型那样表现,不应该破坏它的行为。这称为强行为子类型。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月17日