我知道有很多类似的主题,但是我需要问一下,因为规则是“如果类S是类T的子类型,则可以用S的实例替换T的实例,而不会改变T的任何理想行为。本身。” -因此,每个方法重写都违反规则。我错了吗? 因为每个方法重写都会更改基类。如果没有,请举个例子。
答案 0 :(得分:1)
首先,您需要了解OOP中的抽象和多态性的概念。
如果T是父类,则假定T是虚拟的并且S被覆盖,则它应该被子类S覆盖。 例: T可以是具有CanFly(),CanEat(),CanSee()方法的BirdClass()。 然后,S可以是可以覆盖CanFly(),CanEat(),CanSee()方法的Pegion。 或可以覆盖父类的CanFly(),CanEat(),CanSee()方法的Sparrow。