介紹
類與類之間可以有派生和繼承的關係,這兩種關係是相互的,即父類(基類)派生出子類(派生類),子類(派生類)繼承自父類(基類)。
派生方式有三種:public(公共派生)、protected(保護派生)和private(私有派生),不同的派生方式導致不同權限的父類成員派生到子類之後擁有不同的權限。舉個例子:Father類中有個成員public int M,然後Father類通過私有派生(private)的方式派生出一個Son類,那麼Father類中的M對Son來說會是private的。爲什麼會這樣呢?請看下錶規定。
基類成員在各自派生類中的存取權限
派生方式 | 在基類中的存取權限 | 在派生類中的存取權限 |
---|---|---|
public | public | public |
public | protected | protected |
public | private | (inaccessible) |
protected | public | protected |
protected | protected | protected |
protected | private | (inaccessible) |
private | public | private |
private | protected | private |
private | private | (inaccessible) |
這個表看似很複雜,其實不然。它們有這樣的規律:
- 基類中的private成員,無論採用何種派生方式,對派生類而言,都是無法訪問的
- 基類中的其他成員(public和protected),在派生類中的存取權限是【該成員在基類中的存取權限】和【派生方式】兩者中最嚴格的那個(最嚴格-private-protected-public-最寬鬆)。