介绍
类与类之间可以有派生和继承的关系,这两种关系是相互的,即父类(基类)派生出子类(派生类),子类(派生类)继承自父类(基类)。
派生方式有三种:public(公共派生)、protected(保护派生)和private(私有派生),不同的派生方式导致不同权限的父类成员派生到子类之后拥有不同的权限。举个例子:Father类中有个成员public int M,然后Father类通过私有派生(private)的方式派生出一个Son类,那么Father类中的M对Son来说会是private的。为什么会这样呢?请看下表规定。
基类成员在各自派生类中的存取权限
派生方式 | 在基类中的存取权限 | 在派生类中的存取权限 |
---|---|---|
public | public | public |
public | protected | protected |
public | private | (inaccessible) |
protected | public | protected |
protected | protected | protected |
protected | private | (inaccessible) |
private | public | private |
private | protected | private |
private | private | (inaccessible) |
这个表看似很复杂,其实不然。它们有这样的规律:
- 基类中的private成员,无论采用何种派生方式,对派生类而言,都是无法访问的
- 基类中的其他成员(public和protected),在派生类中的存取权限是【该成员在基类中的存取权限】和【派生方式】两者中最严格的那个(最严格-private-protected-public-最宽松)。