package pkg1;
public interface SomeInterface {
void m();
public static SomeInterface getImplementation() {
return new A();
}
}
class A implements SomeInterface {
@Override
public void m() {}
public void m2() {} // this one cannot be called from other packages
private void m3() {} // this one might be used only in class A
}
package pkg2;
import pkg1.SomeInterface;
public class Main {
public static void main(String[] args) {
SomeInterface implementation = SomeInterface.getImplementation();
implementation.m();
}
}
# 1 楼答案
如果要实现或扩展一个类,简单回答是。如果不打算扩展或实施,则不会。无论如何,我强烈建议你仍然要让你不希望其他类看到的方法或变量是私有的。如果您希望更改类的可视性,并且从长远来看使代码更具可读性,这将节省以后的时间
# 2 楼答案
例如,包私有类可以实现一些接口,并在其包之外使用。在这种情况下,实现的方法应该是
public
。此外,还可以通过private
access修饰符来限制同一包中某些成员的使用