gpt4 book ai didi

java - 本地可以覆盖 final方法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:13:07 26 4
gpt4 key购买 nike

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();
}
}

输出:submain

问题:Test 类中的 print() 方法是 final 方法,本地类可以访问,但本地类仍然可以再次定义 print() 方法,如何?

如果我们在父类(super class)中声明了private final x(),它在子类中是不可访问的,所以我们可以在子类中定义x()。

如果我们在父类(super class)中声明了public final x(),它在子类中是可以访问的,所以我们不能在子类中定义x()。

谁能解释一下?

最佳答案

内部类没有覆盖 final 方法。

内部类必须扩展外部类才能覆盖外部类的方法。

这两个类是独立的,彼此无关,除了外部类包含内部类。

关于java - 本地可以覆盖 final方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com