在面向对象技术下类中成员的可见性以及访问控制程度总是让程序员发懵。特别是初学者。下面将对其做一总结。
1.横向来看,比较简单。类中成员的访问控制程度有三种:public,private,proteced。
public:完全向外部公开。
protected:类中以及派生类均可访问,不能再类外访问。
private: 仅本类中可以访问,类外不能访问。友元除外。
横向的较简单。一旦涉及到纵向的继承后,各种继承方式下的访问控制将很容易搞错。
2.纵向,一定要区分好下面这两种。
第一:父类的成员在子类中的外部能见度,是指被子类继承的
父类成员在子类中的(外部)访问控制程度,也分为
public、private、protected 三种。
第二:父类的成员在子类中的内部能见度,是指被子类继承的
父类成员在子类中定义的方法中的内部访问控制程度,
分为Y(可访问)和N(不可访问)两种。
记住此图,就可以理清复杂的可见性问题了。