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();
}
}
Out put:submain
问题:类Test中的方法print()是final是可以访问本地类的,但是本地类是否能够再次定义print()方法?
如果我们在超类中声明私有final x(),那么它在子类中是不可访问的,所以我们可以在子类中定义x()。
如果我们在超类中声明public final x(),它可以在子类中访问,所以我们不能在子类中定义x()。
任何人都可以解释一下吗?
答案 0 :(得分:6)
内部类不会覆盖final
方法。
内部类必须扩展外部类才能从外层重写方法。
这两个类是分开的,彼此无关,除了外层包含内部类。
答案 1 :(得分:2)
因为TestInner类没有扩展Test类,所以它有自己独立的命名空间。
没有技巧,它不会覆盖Test classes打印方法。
答案 2 :(得分:0)
内部类不会覆盖最终方法。
内部类必须扩展外部类才能从外层重写方法。
这两个类是分开的,彼此无关,除了外层包含内部类。