【答案解析】public(公有)继承、protected(保护)继承和private(私有)继承是常见的3种继承方式。
(1)公有继承
当采用公有继承时,基类成员对其对象的可见性与一般类及其对象的可见性相同,公有成员可见,其他成员不可见。
基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见;基类的公有成员和保护成员作为派生类的成员时,它们都维持原有的状态;基类的私有成员不可见;基类的私有成员依然是私有的,派生类不可访问和保护成员。
(2)保护继承
保护继承与私有继承方式的情况相同。两者的区别在于对派生类的成员而言,基类成员对其对象的可见性与一般类及其对象的可见性相同,公有成员可见,其他成员不可见。
基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员是可见的:基类的公有成员和保护成员都作为派生类的保护成员,并且不能被这个派生类的子类所访问;基类的私有成员是不可见的;派生类不可访问基类中的私有成员。
基类对象对派生类对象的可见性对派生类对象来说,基类的所有成员都是不可见的。所以,在保护继承时,基类的成员也只能由直接派生类访问,而无法再往下继承。
(3)私有继承
在私有继承中,基类成员对其对象的可见性与一般类及其对象的可见性相同,公有成员可见,其他成员不可见。
基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员是可见的:基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问;基类的私有成员是不可见的;派生类不可访问基类中的私有成员。基类成员对派生类对象的可见性对派生类对象来说,基类的所有成员都是不可见的。所以,在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。下表所示为成员访问控制列表。
成员访问控制
|
|
基类性质
|
继承性质
|
派生类性质
|
|
public
|
public
|
Public
|
|
protected
|
public
|
protected
|
|
private
|
public
|
不能访问
|
|
public
|
protected
|
protected
|
|
protected
|
protected
|
protected
|
|
private
|
protected
|
不能访问
|
|
public
|
private
|
pripate
|
|
protected
|
private
|
private
|
|
private
|
private
|
不能访问
|