關鍵字:public private protected
a. 權限控制符在類中的作用
b. 權限控制符在繼承中的作用
c. 權限控制符作用於類級,並非對象級
一. 權限控制符在類中的作用
訪問權限可以從以下三個范圍來區分:
x. 某類的內部
y. 該類的派生類(子類)內部
z.該類外部,也就是該類的使用者客戶
public在xyz中都可以訪問,protected在xy中可以訪問,private在x中可以訪問。
訪問權限的意義:
1. public,private主要體現類的封裝性,public類外可以訪問,一般定義接口。
private只能在類內部訪問,用於隱藏實現。
2. protected主要體現類的繼承,也是public和private的一個折中。
protected類外不能訪問,但子類可以訪問。
二. 權限控制符在繼承中的作用
Note前提: 不管是什么繼承方式,當前類的private成員,其派生類都是不可以直接訪問的
當然其派生類可以通過基類的其他接口間接訪問。
不管控制權限如何,繼承方式如何,派生類都會繼承基類的所以成員,包括private成員。
訪問權限和繼承方式只是決定派生類對基類的成員的可訪問性。
public,protected,private這三種繼承方式,不會影響派生類成員訪問基類的成員。
不管是哪種繼承方式,派生類都可以訪問基類的public,protected成員。
不同的繼承方式只是決定了基類的成員被繼承在派生類后,外部客戶是否有權限訪問這些成員。
1. public繼承后,子類可以訪問父類的public,protected成員,子類的客戶(即子類外部)還是保持
原有的訪問權限。
2. protected繼承后,子類仍可以訪問父類的public,protected成員,子類的客戶就不能訪問這些成員了。
3. private繼承后,子類仍可以訪問父類的public,protected成員,子類的客戶也不能訪問這些成員了。
4. protected繼承后,派生類繼承的public,protected成員的訪問權限為protected,這表示它們在后面的繼承
中仍然可以被后面的派生類直接訪問。private繼承則導致直接訪問權限結束。