首页 > 试题广场 >

有哪几种继承方式?每种方式的派生类对基类成员的继承性如何?

[问答题]
有哪几种继承方式?每种方式的派生类对基类成员的继承性如何?
推荐

类的继承方式有public(公有继承)、protected(保护继承)和private(私有继承)它种,不同的继承方式导致不同访问属性的基类成员在派生类中的访问属性也有所不同。

表4.1列出了基类成员在派生类中的访问属性。
表4.1基类成员在派生类中的访问属性

基类中的成员

在公有派生类中的访问属性

在私有派生类中的访问属性

在保护派生类中的访问属性

私有成员

不可直接访问

不可直接访问

不可直接访问

公有成员

公有

私有

保护

保护成员

保护

私有

保护

从表4.1中可以归纳出以下几点:

(1) 基类中的私有成员。无论哪种继承方式,基类中的私有成员不允许派生类继承,即在派生类中是不可直婊访问的。

(2)基类中的公有成员。当类的继承方式为公有继承时,基类中的所有公有成员在派生类中仍以公有成员的身份出现,在派生类内部和派生类外部都可以访问这些成员;当类的继承方式为私有继承时,基类中的所有公有成员在派生类中都以私有成员的身份出现,在派生类内可以访问这些成员,但派生类外部不能访问它们;当类的继承方式为保护继承时,基类中的所有公有成员在派生类中都以保护成员的身份出现,在派生类内可以访问这些成员,但派生类外部不能访问它们,而在下一层派生类内可以访问它们。

(3)基类中的保护成员。当类的继承方式为公有继承时,基类中的所有保护成员在派生类中仍以保护成员的身份出现,在派生类内可以访问这些成员,但派生类外部不能访问它们,而在下一层派生类内可以访问它们;当类的继承方式为私有继承时,基类中的所有保护成员在派生类中都以私有成员的身份出现,在派生类内可以访问这些成员,但派生类外部不能访问它们;当类的继承方式为保护继承时,基类中的所有保护成员在派生类中仍以保护成员的身份出现,在派生类内可以访问这些成员,但派生类外部不能访问它们,而在下一层派生类内可以访问它们。

发表于 2018-05-05 21:23:09 回复(0)