特定のクラスで、内部的にのみ呼び出すことができるメソッドとそのサブクラスを作成するにはどうすればよいですか。
たとえば、クラス Foo:
public class Foo{
public Foo(){
}
???? void bar(){
}
}
および Foo を拡張するクラス Baz:
public class Baz extends Foo{
public Baz(){
this.bar(); //valid
}
}
また、他のランダムなクラス、Qux:
public class Qux{
private Baz baz = new Baz();
public Qux(){
baz.bar(); //invalid
}
}
これらのクラスはどのパッケージにも含まれる可能性があるため、単純な「保護」は機能しないことに注意してください。
キーワードなどでこれが不可能な場合は、同様の動作を実現する方法についての提案をお待ちしています。