大家好,接下来为大家带来一些关于继承与多态的常见面试题,希望大家多多支持哦~。
一、概念考察
1. 下面哪种面向对象的方法可以让你变得富有( )
A: 继承 B: 封装 C: 多态 D: 抽象
解析:这里是一个双关语题目。虽然在面向对象编程中,“继承”是指子类继承父类的属性和方法,但在日常生活中,“继承”也指继承财产。因此,选择“继承”有双重含义,可以理解为变得富有。
因此这道题应该选A.
2. ( )是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,
而对方法的调用则可以关联于具体的对象。
A: 继承 B: 模板 C: 对象的自身引用 D: 动态绑定
解析:动态绑定是指在程序运行时确定调用哪个方法。这样的方法调用与具体的对象相关,而方法的定义与具体对象无关。这使得可以在运行时决定调用哪个具体对象的方法。
所以应该选D。
3. 面向对象设计中的继承和组合,下面说法错误的是?()
A:继承允许我们覆盖重写父类的实现细节,父类的实现对于子类是可见的,是一种静态复
用,也称为白盒复用
B:组合的对象不需要关心各自的实现细节,之间的关系是在运行时候才确定的,是一种动
态复用,也称为黑盒复用
C:优先使用继承,而不是组合,是面向对象设计的第二原则
D:继承可以使子类能自动继承父类的接口,但在设计模式中认为这是一种破坏了父类的封
装性的表现
解析:实际的面向对象设计原则推荐我们在日常中优先使用组合,而不是继承。因为组合比继承更加的灵活,避免了继承所带来的高耦合问题。在某种程度上,继承也被认为是破坏了父类封装。
所以这道题应该选C。
4. 以下关于纯虚函数的说法,正确的是( )
A:声明纯虚函数的类不能实例化对象 B:声明纯虚函数的类是虚基类
C:子类必须实现基类的纯虚函数 D:纯虚函数必须是空函数
解析:B:子类也可以声明纯虚函数。C:子类只要不实例化对象,就可以不实现基类的纯虚函数。D:纯虚函数不用是空函数。
所以这道题应该选A.
5. 关于虚函数的描述正确的