公有方式继承的特点:
① 基类的公有成员在派生类中仍然为公有成员,可以由派生类对象和派生类成员函数直接访问。
② 基类的私有成员在派生类中,无论是派生类的成员还是派生类的对象都无法直接访问。
③ 保护成员在派生类中仍是保护成员,可以通过派生类的成员函数访问,但不能由派生类的对象直接访问。注意:对基类成员的访问,一定要分清是通过派生类对象访问还是通过派生类成员函数访问。
私有方式继承的特点:
①基类的公有成员和保护成员被继承后作为派生类的私有成员,即基类的公有成员和保护成员被派生类吸收后,派生类的其他成员函数可以直接访问它们,但是在类外部,不能通过派生类的对象访问它们。
②基类的私有成员在派生类中不能被直接访问。无论是派生类的成员还是通过派生类的对象,都无法访问从基类继承来的私有成员。
③经过私有继承之后,所有基类的成员都成为了派生类的私有成员或不可访问的成员,如果进一步派生的,基类的全部成员将无法在新的派生类中被访问。因此,私有继承之后,基类的成员再也无法在以后的派生类中发挥作用,实际是相当于中止了基类的继续派生,出于这种原因,一般情况下私有继承的使用比较少。
保护继承的特点:
①基类的公有成员和保护成员被继承后作为派生类的保护成员。 派生类的其他成员函数可以直接访问它们,但是在类外部,不能通过派生类的对象访问它们。
②基类的私有成员在派生类中不能被直接访问。 无论是派生类的成员还是通过派生类的对象,都无法访问从基类继承来的私有成员。
③如果将派生类作为新的基类继续派生时, private、protected两种继承方式区别就出现了。假设类B以私有方式继承自类A,则无论B类以什么方式派生出类C,类C的成员和对象都不能访问间接从A类中继承来的成员。但如果类B是以保护方式继承自类A,那么类A中的公有和保护成员在类B中都是保护成员。类B再派生出类C后,如果是公有派生或保护派生,则类A中的公有和保护成员被类C间接继承后,类C的成员函数可以访问间接从类A中继承来的成员。即类A的成员可以沿继承树继续向下传播。
联系客服