下面有关继承、多态、组合的描述,说法错误的是?
A、封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏
B、继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展
C、隐藏是指派生类中的函数把基类中相同名字的函数屏蔽掉了
D、覆盖是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同
答案: BC
解析:
A:可以把成员设为private,外部的函数不可访问,设为public,外部的函数可以访问
B:基类的私有成员不可以继承
隐藏、覆盖和重载的区别:
1、重载:是函数名相同,函数的参数个数、参数的类型
参数的顺序不同,但是无法通过函数返回值的不同来进行重载,要在同一个类中
2、覆盖:函数名相同,参数列表必须相同,必须位于基类和派生类中,在基类里的函数为虚函数
3、隐藏:分两种情况
1)函数名相同,函数的参数个数,参数的顺序,参数的类型不同,分别位于基类和派生类;(与重载的区别就是位于不同的两个类中)
2)函数名相同,函数的参数相同,位于基类和派生类中,但是基类的函数不是虚函数;(与覆盖的区别在于:基类函数是否为虚函数)