2017-02-25 13 views
0

Javaのすべての抽象クラスは、明らかに具体クラスによって拡張されており、独自にインスタンス化できません。抽象クラスを拡張しているクラスへの参照を取得するにはどうすればよいですかクラス?私のユースケースにはリフレクションが含まれており、親抽象クラスでは具体的なサブクラスのメソッドをイントロスペクトしたいので、抽象メソッドを追加せずにサブクラスへの参照を取得する方法を見つけることができません。何か案は?!抽象Javaクラス内のサブクラスへの参照を取得する方法

+3

'this'はうまくいくでしょうか? –

+0

わかりません。抽象クラス内のサブクラスは何ですか?抽象クラスにはスーパークラスがあります。サブクラスを持つこともあります。しかし、 "内部"のコンセプトは、私は見ていない。ごめんなさい。 – davidxxx

+0

と言うと、AbstractPersonはJavaの抽象クラスであり、JohnSmithはAbstractPerson内のAbstractPersonを継承しています。私はJohnSmithサブクラスへの参照を取得できますか? –

答えて

0

thisは、現在のオブジェクトへの参照として使用できます。抽象クラス内でthis.getClass()を呼び出すと、実行時にサブクラスのClassインスタンスが取得されます。

さらに、あなたの質問はすでにここに答えた:私はあなたが間違って理解している場合

Get Concrete Class name from Abstract Class

は、私を修正してください。

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 15340777) –

+0

ヒントをありがとう、元の答えを編集しました。 –

1

抽象クラスは実行時に「存在しない」ため、具体的な実装のみをインスタンス化できます。抽象スーパークラスで定義され、具象クラスでオーバーライドされていないメソッドは、this参照で「自身」を参照できます。

+0

今すぐ入手!ありがとう! –

関連する問題