对于违反里氏替换原则的两个类A和B,可以采用的候选解决方案中,正确的是( )。

admin2013-01-20  39

问题 对于违反里氏替换原则的两个类A和B,可以采用的候选解决方案中,正确的是(       )。

选项 A、尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程
B、创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题
C、将B到A的继承关系改成组合关系
D、区分是“Is-a”还是“Has-a”。如果是Is-a,可以使用继承关系,如果是Has-a,应该改成组合或聚合关系

答案A

解析 里氏替换原则是面向对象设计原则之一,由Barbara liskov提出,其基本思想是,一个软件实体如果使用的是一个基类对象,那么一定适用于其子类对象,而且觉察不出基类对象和子类对象的区别,即把基类都替换成它的子类,程序的行为没有变化。反过来则不一定成立,如果一个软件实体使用的是一个子类对象,那么它不一定适用于基类对象。
    在运用里氏替换原则时,尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。由于子类继承基类并实现其中的方法,程序运行时,子类对象可以替换基类对象,如果需要对类的行为进行修改,可以扩展基类,增加新的子类,而无需修改调用该基类对象的代码。
转载请注明原文地址:https://kaotiyun.com/show/UwQZ777K
0

最新回复(0)