public class Test {
public static void main(String args[]){
Test t = new Test();
t.inner();
}
public final void print() {
System.out.print("main");
}
public void inner() {
class TestInner {
void print(){
System.out.print("sub");
}
}
TestInner inner =new TestInner();
inner.print();
print();
}
}
出力:サブメイン
質問 : クラス Test のメソッド print() は final であり、ローカル クラスにアクセスできますが、それでもローカル クラスは print() メソッドを再度定義できます。
スーパークラスで private final x() を宣言すると、サブクラスではアクセスできないため、サブクラスで x() を定義できます。
スーパークラスで public final x() を宣言すると、サブクラスでアクセスできるため、サブクラスで x() を定義できません。
誰でも説明できますか?