已知ClassA是ClassB的父类,在ClassC中定义了ClassA类型的对象obj,且提供了方法setClassA(ClassAobj)用于给obj对象赋值,以下叙述有误的是()。
A. 可以在setClassA()方法中传递一个ClassB类型的对象
B. 如果在类ClassA中定义了方法methodl(),在类ClassB中覆盖了该方法,当setClassA()方法参数传递的是ClassB类型的对象时,在ClassC中调用obj的method()方法时将执行ClassB的method1()方法
C. 可以在ClassC中定义一个新的方法setClassA(ClassBobj),它与原有方法SetClassA(ClassAobj)构成一组重载方法
D. 如果在ClassB中定义了ClassA没有的新方法method2(),当setClassA()方法参数传递的是ClassB类型的对象时,在ClassC中可以调用obj对象的method2()方法
查看答案
下面关于面向对象设计的描述正确的是()。
A. 针对接口编程,而不是针对实现编程
B. 针对实现编程,而不是针对接口编程
C. 接口与实现不可分割
D. 优先使用继承而非组合
面向对象分析与设计中的()是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的
A. 开闭原则
B. 里氏代换原则
C. 依赖倒转原则
D. 单一职责原则
面向对象分析与设计中()是指子类应当可以替换父类并出现在父类能够出现的任何地方。
A.开闭原则
B.里氏代换原则
C.依赖倒转原则
D.单一职责原则
关于继承复用和合成复用,以下叙述错误的是().
A. 继求复用实现简单,子类可以继承父米的部分方法和属性,并且可以选择性覆盖父类的方法
B. 继承复用会破坏系统的封装性,会将基类的实现细节暴露给子类
C. 合成复用将已有对象纳人新对象中,使之成为新对象的一部分,新对象可以调用已有对象的方法,从而实现行为的复用
D. 合成复用又称为“白箱”复用,与继承复用相比,其耦合度更高,成员对象的变化对谷器对象影响较大,而且合成复用不能在程序运行时动态头现