private、public、protected的可见性(类成员的可见性)

(每一个类都有private、public、protected······这些类型区域。)

private區間的內容只能在声明该類的那個單元裡使用,出了這個單元,該類的派生類(不同单元)、外部中uses該类所在的單元 定义的属于该类或该类的派生类的对象(不同单元),都無法访问private區間的內容。【private成员被隐藏起来,形成了“封装”。】

public区间的内容在基类、派生类、外部定义的相应基类或派生类的对象中都能被访问。【public成员往往被称为类的接口。】

protected区间的内容只能在基类、派生类所在的单元中被访问,而在uses該基类或该派生类所在的單元时 所创建的对象中不可访问。

总结(下面拿基类的private、public、protected区的成员来说明):


     基类对象(在声明基类的单元)  派生类对象(在声明派生类的单元)  基类和派生类的对象在外部单元


 

private          √                       ×                     ×


 

public           √                      √                     √


 

protected        √                      √                      ×


 注:√ 代表基类中该类型的成员在**单元可见,×代表基类中该类型的成员在**单元不可见。

 

PS:

简单来说就是:

private类型的成员只能在声明类中被访问,派生类中不可访问,外部单元不可访问。

public类型的成员能在声明类中、派生类中、外部单元中被访问。

protected类型的成员只能在声明类中、派生类中被访问,外部单元不可访问。

原文地址:https://www.cnblogs.com/168-h/p/14884134.html