以下のコードを実行してみますと。
class Super{ public void publicMethod(){ System.out.println("super did public"); } protected void protectedMethod(){ System.out.println("super did protected"); } void defaultMethod(){ System.out.println("super did default"); } private void privateMethod(){ System.out.println("super did private"); } /* メインルーチン */ static public void main(String[] str){ Super s = new Sub(); s.publicMethod(); s.protectedMethod(); s.defaultMethod(); s.privateMethod(); } } /* 継承 */ class Sub extends Super{ public void publicMethod(){ System.out.println("sub did public"); } public void protectedMethod(){ System.out.println("sub did protected"); } public void defaultMethod(){ System.out.println("sub did default"); } public void privateMethod(){ System.out.println("sub did private"); } } /* 結果 sub did public sub did protected sub did default super did private */
privateなメソッドは継承できません。
蛇足的な追記。
- privateとabstractは同時に定義不可
- 上記のSubクラスのメソッドをprivateで定義するのは不可(アクセス権を弱くは出来ない)