gpt4 book ai didi

java扩展静态方法,无法编译,为什么?

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

class Base {
public static void f(){}
}
class Derived extends Base{
private static void f(){}
}

Derived.f() 的修饰符必须是公共(public)的,如果是私有(private)的,编译器说“正在尝试分配较弱的访问权限;已公开”
我不明白!为什么编译器不允许我们这样做?

最佳答案

静态方法不能被覆盖,它们只能被子类隐藏,方法的可访问性与隐藏无关。只有实例方法可以被覆盖,但是方法是根据签名隐藏或覆盖的,并且在两者中案例签名应该相同。您不能降低继承方法的可访问性,无论它是隐藏的还是被覆盖的。

关于java扩展静态方法,无法编译,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39556331/

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