派生クラスから基底クラスの要素にアクセスできるか
基底クラスの指定 \ 派生クラスの継承の仕方 |
public |
protected |
private |
public |
◯ |
◯ |
◯ |
protected |
◯ |
◯ |
◯ |
private |
× |
× |
× |
クラス外から基底クラスの要素にアクセスできるか
Baseクラスの指定 \ 派生クラスの継承の仕方 |
public |
protected |
private |
public |
◯ |
× |
× |
protected |
× |
× |
× |
private |
× |
× |
× |
派生クラスで基底クラスの要素がどう扱われるか
Baseクラスの指定 \ 派生クラスの継承の仕方 |
public |
protected |
private |
public |
public |
protected |
private |
protected |
protected |
protected |
private |
private |
no access |
no access |
no access |
まとめ
クラス外からはpublicのみアクセス可能。派生クラスからは(規定クラスをどのような指定子で継承したかによらず)publicとprotectedがアクセス可能。
派生クラスで規定クラスの要素がどう扱われるかは、「基底クラスの指定子」と「継承指定子」の厳しい方となる。