gpt4 book ai didi

java - 包保护类中的公共(public)方法是否有任何理由?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:22 24 4
gpt4 key购买 nike

我想知道在一个受包保护的类中,一个方法是公共(public)的还是包保护的是否有任何区别。

class Example {
public void test() {}
}

代替

class Example {
void test() {}
}

我想最大的可见性是由类(class)给出的。而一种方法只能降低能见度,提高能见度没有效果。

但它是有效的语法,所以也许我监督了什么?

最佳答案

如果我们将 Example 子类化为 public 类,那么包外的代码可以使用子类实例访问 test() 方法,如果它是 public

例子:

package A;
class Example {
public void test() {}
}

package A;
public class SubExample extends Example {
}

package B;
import A.SubExample;
class OutsidePackage {
public void some method(SubExample e){
// Had test been defined with default access in class Example
// the below line would be a compilation error.
e.test();
}
}

关于java - 包保护类中的公共(public)方法是否有任何理由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16069320/

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