gpt4 book ai didi

java - 在没有编译错误的情况下更改对方法的访问

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:08 25 4
gpt4 key购买 nike

有人可以演示一个简单程序的示例,在这个示例中,将一个方法的访问权限从私有(private)更改为公共(public),不会导致编译错误,只会导致程序的行为不同吗?

此外,什么时候添加新的私有(private)方法会导致编译错误或导致程序表现不同?

最佳答案

这与继承有关。子类可以拥有与其父类中的私有(private)方法具有相同签名的方法,但不能覆盖它。

public class Scratchpad {
public static void main(String[] args) {
new Sub().doSomething();
}
}

class Super {
public void doSomething() {
System.out.println(computeOutput());
}

private String computeOutput() {
return "Foo";
}
}

class Sub extends Super {
public String computeOutput() {
return "Bar";
}
}

如果你按原样运行它,你会得到 Foo。如果将 Super#computeOutput() 更改为 public,则会得到 Bar。这是因为 Sub#computeOutput() 现在会覆盖 Super#computeOutput()

关于java - 在没有编译错误的情况下更改对方法的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016198/

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