在 java 中需要这样的规则是什么:
“子类不能削弱父类(super class)中定义的方法的可访问性”
最佳答案
如果你有一个带有公共(public)方法的类
public class Foo {
public void method() {}
}
这个方法是可以访问的,因此你可以这样做
Foo foo = new Foo();
foo.method();
如果添加子类
public class Bar extends Foo {
@Override
public /* private */ void method() {}
}
如果是private
,你不应该做
Foo bar = new Bar();
bar.method();
在这个例子中,一个 Bar
是 Foo
, 所以它必须能够替换 Foo
无论在哪里。
为了满足上面的说法,一个子类不能让一个可继承的成员更难访问。但是,它可以使其更易于访问。 (这基本上只适用于方法。)
关于java - 继承:子类中方法的可访问性较弱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23049583/