6
通过逆转关系可以解决圆椭圆问题吗?
具有CircleextendEllipse违反了Liskov替换原理,因为它修改了后置条件:即,可以独立设置X和Y来绘制椭圆,但是对于圆,X必须始终等于Y。 但是,不是因为Circle是Ellipse的子类型引起的问题吗?我们不能扭转这种关系吗? 因此,Circle是超类型-它只有一个方法setRadius。 然后,椭圆通过添加setX和扩展Circle setY。调用setRadiusEllipse将同时设置X和Y-意味着保留setRadius的后置条件,但是现在您可以通过扩展接口独立设置X和Y。