Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。274件11タイトルのことを実現するには↓のように実装するだけです。}}このAを継承したサブクラスで上記メソッドを実行するとメソッドの実装どおり、Aクラスを返すことになります。クラスを返したいです。さんの回答は限りなく正解に近いものだと思うのですが↓のような結果になりました。メソッドが見えなくなりました。該当すると思われます。回答の以下の部分でしょう。簡単に、あなたは書くことができます。}だからあなたはただ呼ぶことができます。Bar().getSelf()Fooから拡張された全てのクラスのインスタンスを取得。いずれも確認はしていないので試してみてください。A().chain()B().chain()ただし、質問者は上記を解決とした後、より応用が効く方法を発見したようです。Google翻訳をちょっといじった程度なので、文章が怪しいですが以下になるでしょう。一般的なパターンを使用せずに実装で適合型を一般的に参照する方法の質問には答えませんでしたが、より簡単でスケーラブルな方法でより大きな問題を解決しました。関数の定義はクラスの外側で、ということなので、こんな風になるようです。上記に加えて、mainを記述して実行した結果が以下になります。個の銅バッジ回答有り難うございます。こちらの方法で9割はあっていると思われます。勉強になり、今後の応用にも役に立ちそうです。chainメソッドはBクラスのメソッド内からしか参照できませんでした...Bクラスのメソッド内からchainメソッドにアクセスするとちゃんと戻り値の型がBクラスになっています。なるのですが、クラス内部にではなくグローバルに定義してみてください。ようなかたちでないと呼び出せません。A}一応解決法が出たようですが、もう一つ共変戻り値といわれるやりかたを付け加えておきたいと思います。いっても上のようにオーバーライドして元の戻り値のサブクラスに戻り値を書き換えるだけです。この方法は拡張メソッドの方法と違って、それぞれ戻り値の型を変えたいクラスごとにオーバーライドする必要がありますが、戻り値ごとに違った処理が書ける分こちらでなければ駄目という場合もあるので覚えておいて損はないと思います。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。