2017-02-25 81 views
0

Java中的所有抽象類顯然都是由一個具體的類進行擴展,並且不能自行實例化,我如何獲得對正在擴展我的摘要的類的引用類?我的用例涉及反射和在我的父級抽象類我想內省的具體子類的方法,我無法弄清楚如何獲得對子類的引用,而無需添加抽象方法強制子類返回其類。有任何想法嗎?!如何在抽象java類中獲取對子類的引用

+3

'this' will work,no? –

+0

我不確定要理解。什麼是抽象類中的子類?抽象類有一個超類。它也可能有子類。但是「內部」概念,我沒有看到。抱歉。 – davidxxx

+0

說AbstractPerson是java中的一個抽象類,JohnSmith擴展了AbstractPerson,AbstractPerson中可以獲得對JohnSmith子類的引用嗎? –

回答

0

您可以使用this作爲當前對象的參考。通過在抽象類中調用this.getClass(),您將在運行時獲取子類的Class實例。

此外,你的問題已經在這裏找到答案:

Get Concrete Class name from Abstract Class

請糾正我,如果我明白你錯了。

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/15340777) –

+0

謝謝你的提示,編輯了原始答案。 –

1

您的抽象類在運行時不「存在」,只有具體的實現可以被實例化。在抽象超類中定義的任何方法並且在具體類中都未覆蓋的方法可通過參考this引用「自身」。

+0

我明白了!謝謝! –