|
|
继承(Inheritance)机制是面向对象程序设计使代码可以复用的最重要手段,它允许程序员在保持原有类特性的基础上,调整部分成员的特性,也可以增加一些新成员。
|
|
|
通过继承,能够以已有的类为基础定义新的类,使新的类具有已有类的全部特点和功能,新的类还能添加自己的特点和功能,或修改老的类的特点和功能。已有的类(被继承的类)称为基类或父类,新的类(继承的类)称为派生类或子类。
|
|
|
具体地,派生类拥有基类的全部成员变量和成员函数,而且还能添加新的成员变量和成员函数,也可以重新定义从基类继承的成员变量和成员函数,即吸收基类成员、改造基类成员、添加新的成员。继承和派生机制大大地提高了软件的可重用性和可扩充性。
|
|
|
|
C++提供了3种继承方式,也是用public、 protected、 private三个关键字标识,一般采用公有继承public。3种继承方式的具体意义如下表所示。
|
|
|
|
|
|
在需要基类对象的地方可以使用公有派生类来替代,派生类对象能自动地当作其基类对象来使用,但基类对象不能当作其派生类对象来使用。这正体现了"派生类对象是一个基类对象"。
|
|
|
|
|
.派生类对象可以初始化基类引用:base&br=d。
|
|
|
.派生类对象的地址可以赋值给基类指针:base *pb=&d。
|
|
|
|
派生类可以定义一个和基类成员同名的成员,这称为覆盖。派生类成员将覆盖所有基类的同名成员,默认的情况是引用派生类的成员。若想访问基类同名成员,需要通过域作用符"::"——基类名::数据成员名、基类名::函数成员名(参数表)。
|
|
|