private、public、protected的可见性(类成员的可见性)
(每一个类都有private、public、protected······这些类型区域。)
private區間的內容只能在声明该類的那個單元裡使用,出了這個單元,該類的派生類(不同单元)、外部中uses該类所在的單元 定义的属于该类或该类的派生类的对象(不同单元),都無法访问private區間的內容。【private成员被隐藏起来,形成了“封装”。】
public区间的内容在基类、派生类、外部定义的相应基类或派生类的对象中都能被访问。【public成员往往被称为类的接口。】
protected区间的内容只能在基类、派生类所在的单元中被访问,而在uses該基类或该派生类所在的單元时 所创建的对象中不可访问。
总结(下面拿基类的private、public、protected区的成员来说明):
基类对象(在声明基类的单元) 派生类对象(在声明派生类的单元) 基类和派生类的对象在外部单元
private √ × ×
public √ √ √
protected √ √ ×
注:√ 代表基类中该类型的成员在**单元可见,×代表基类中该类型的成员在**单元不可见。
PS:
简单来说就是:
private类型的成员只能在声明类中被访问,派生类中不可访问,外部单元不可访问。
public类型的成员能在声明类中、派生类中、外部单元中被访问。
protected类型的成员只能在声明类中、派生类中被访问,外部单元不可访问。