我怎么能在给定的类中创建一个只能由它内部调用的方法,以及它的子类。
例如,类 Foo:
public class Foo{
public Foo(){
}
???? void bar(){
}
}
和 Baz 类,扩展 Foo:
public class Baz extends Foo{
public Baz(){
this.bar(); //valid
}
}
还有其他一些随机类 Qux:
public class Qux{
private Baz baz = new Baz();
public Qux(){
baz.bar(); //invalid
}
}
请注意,这些类中的任何一个都可以在任何包中,因此简单的“受保护”将不起作用。
如果使用关键字或类似内容无法做到这一点,我愿意接受有关如何实现类似行为的建议。