可以局部覆盖最终方法吗?

Raj*_*esh 3 java methods final

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:子域

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

如果我们在超类中声明私有final x(),它在子类中是不可访问的,所以我们可以在子类中定义x().

如果我们在超类中声明public final x(),它可以在子类中访问,所以我们不能在子类中定义x().

谁能解释一下?

Boh*_*ian 6

内部类不会覆盖该final方法.

内部类必须扩展外部类,以便能够覆盖外部类的方法.

除了外部类包含内部类之外,这两个类是彼此独立且不相关的.