gpt4 book ai didi

java - 私有(private)实例方法在运行时不受限制吗?

转载 作者:行者123 更新时间:2023-11-29 03:07:41 24 4
gpt4 key购买 nike

请看下面的代码。

class TestClass{
private void privMethod()
{
System.out.println("TestClass Method");
}
public static void main(String... args)
{
TestClass obj=new SubClass();
obj.privMethod();
}
}

class SubClass extends TestClass
{
private void privMethod()
{
System.out.println("SubClass Method");
}
}

当我编译这段代码时,它编译得很好。当我运行 TestClass 时,输出是:TestClass 方法 裁判。变量 obj 是 TestClass 类型,但它指的是 Sub 类的对象,因此在运行时它应该与 Sub 的 privMethod() 绑定(bind)。你能解释一下吗?

最佳答案

private 方法不会被子类中的方法覆盖。只有 publicprotectedpackage-private 可以被覆盖。因此不应用运行时的多态行为。

如果在子类声明的方法上加上注解@Override,会出现编译错误:

@Override  // error
private void privMethod()
{
System.out.println("SubClass Method");
}

关于java - 私有(private)实例方法在运行时不受限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31253615/

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