长方形与正方形
假如我们有一个类:长方形
我们需要一个新的类,正方形
问:可否直接继承长方形
违反里氏替换原则,只有符合"is a"关系时才能使用继承,子类要保证能够完全代替父类出现在父类可以出现的任何地方,所以子类的实现一定是要在继承父类所有方法的前提下进行自我拓展,子类的拓展条件是要比父类的拓展条件更为宽松的,然而长方形明明只有长和宽相等时才是正方形,所以正方形作为子类并没有更宽松的拓展条件,并不能出现在长方形可以出现的所有地方。
长方形与正方形
假如我们有一个类:长方形
我们需要一个新的类,正方形
问:可否直接继承长方形
违反里氏替换原则,只有符合"is a"关系时才能使用继承,子类要保证能够完全代替父类出现在父类可以出现的任何地方,所以子类的实现一定是要在继承父类所有方法的前提下进行自我拓展,子类的拓展条件是要比父类的拓展条件更为宽松的,然而长方形明明只有长和宽相等时才是正方形,所以正方形作为子类并没有更宽松的拓展条件,并不能出现在长方形可以出现的所有地方。