<<程序员面试宝典>>读书笔记 3

1.多态的概念。

多态简单说就是一个接口多种方法,多态性允许你讲父对象设置成和他的一个或多个子对象相等的技术,赋值之后父对象可以根据当前赋值给他子对象的特性以不同的方式运行,即允许子对象的指针赋值给父对象的指针。

这里面着重和重载进行说明一下,重载与多态无关,真正的与多态相关的是覆盖。重载的函数调用,在编译器间就已经确定了是静态的,属于早绑定。覆盖是指派生类重写基类虚函数。

我们知道封装可以隐藏实现细节,使得代码模块化,继承可以扩展当前的代码模块,而多态实现另一个目的接口重用。

2.继承

子类获得父类特性的概念就是继承,一旦成功定义派生类,那么派生类就能操作基类的所有数据成员包括保护型的,当然派生类能够对基类成员进行操作。

B* pb=(B*) pa ,注意该语句的意思是将pa转化为b类型,并新建一个b类型指针,将pa值复制到pb,而pa至始至终没有发生变化,所以pb也直指向pa的函数,这里就不存在覆盖的问题,详见144页。

子类不论何种继承方式就只能继承父类的保护型数据函数或公有型数据函数,而私有继承会使父类中所有元素都无法与子类联系。

1.公有继承时基类中各成员属性保持不变,基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。

2.私有继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。

3.保护继承时基类中各成员属性均变为protected,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员.

4.保护继承可以继续被继承,而且可以访问基类的public和protected,但不可以修改.私有继承也可以继续被继承,但已经被私有化,无法访问基类的public和protected,如果类的继承不写关键字,C++默认为私有继承。

你可能感兴趣的:(<<程序员面试宝典>>读书笔记 3)