Java で継承されたメソッドの戻り値の型について質問があります。クラスと継承されたクラスがあります。継承されたクラスには、特定のメソッドがあります。また、それ自体のインスタンスを返す親クラスからメソッドを継承します。
このクラス階層のようなものが欲しい:
public class Foo {
public Foo bar()
{
return this;
}
}
public class FooInherited extends Foo {
public Whatever baz()
{
return new Whatever();
}
}
私の質問は、継承されたメソッドをそのインスタンスから呼び出してから、メソッドをオーバーライドして継承されたクラスを返したり、クラスを明示的にキャストしたりせずに特定のメソッドを呼び出すことができるかどうかです。
今、私はこのようなコードフラグメントを持ちたいです:
FooInherited foo = new FooInherited();
Whatever w = foo.bar().baz();
これには難しさを感じますが、Java がそのような状況でプログラマーの時間を節約するメカニズムを備えているかどうかはよくわかりません。