1.介绍成员访问控制机制
访问控制机制用来实现面向对象的四个基本特征中的封装机制。Java和C++等面向对象的编程语言中都提供了四种访问权限修饰符,分别是Public(公共)、Protected( 保护)和 Private(私有)。
访问控制修饰符是限定一个名字的可访问性的,这里的名字可以是类,接口,成员属性和成员方法。
可访问性是一种在编译时期确定的静态特征,也就是说在编译时就确定了一个名字在什么范围内可以被访问,从而限制一个名字的访问权限。如果把访问控制比喻成房间的门,那么访问属性就是门的状态。
这篇博客主要说明访问控制如何应用于类类型对象和派生类对基类的继承。
2. 控制对类成员的访问
Class 派生类:继承访问控制 基类{
public:
公有成员说明列表;
Protected:
受保护成员说明列表:
Private:
私有成员说明列表:
}
其他类对此类中各个成员的访问权限如下表所示:
此类自身可以访问任何成员;
此类的派生类不能够访问private成员;
其他类只能够访问public成员;
这里需要注意:对于此类的一个实例化对象,它的访问权限相当于“其他类”。
3.控制派生类对基类的继承
访问控制机制在继承中的应用,实际上就是要看派生类能够继承基类的哪些成员以及这些成员的访问控制。
派生类访问基类中的成员变量的时候受两方面的限制,分别是基类成员访问控制继承访问控制 。
不同的基类成员访问控制和继承访问控制决定派生类访问基类成员能够拥有的访问权限
分析上表可以看出,派生类不能够继承基类的private成员;
当继承访问控制是Public的时候,派生类能够继承基类的public和protected成员并且访问控制不变
当继承访问控制是Protected的时候,派生类能够继承基类中的public和protected成员但是访问控制全部变成Protected
当继承访问控制是Private的时候,派生类能够继承基类中的public和protected成员但是访问控制全部变成Private