2011-04-08 25 views
0

假設類Dog擴展了抽象類動物並實現了類Play。 然後,在類Dog中,它實現了繼承的抽象方法Animal.eat()和Play.jump()。 想象一下,在Eclipse中,Dog.eat()和Dog.jump()的左邊會有一個小三角形。如果你把鼠標放在這個小三角形上,它會告訴你這個方法實現了哪個類的抽象方法。如何獲取方法的繼承信息?

我想知道如何獲得這種方法的繼承信息。我的問題是:如果我有一組.java文件,沒有任何IDE的幫助,我怎樣才能提取相同的方法繼承信息,就像Eclipse一樣(就像這個方法實現了哪個類的抽象方法)?

我可以想到一種方法:給定班級狗,我首先獲得這個類的動物和遊戲的繼承信息。然後,我比較Dog和Animal/Play中的所有方法簽名並查看哪一個實現了什麼。但是這種方法似乎有些天真,可能效率不高。所以,請讓我知道是否有任何可以用來獲取方法繼承信息的好方法。

謝謝!

回答

1

我認爲你所描述的方法是唯一的方法。我可能是錯的,但是知道從給定的接口/類繼承哪些方法的唯一方法是檢查接口,因此,必須在給定的方法上搜索給定的接口。我會想象eclipse會根據繼承結構建立一個方法列表,當你將鼠標懸停在某個給定類的方法上時,請查閱該表以查看它來自哪個類/接口。最後一部分僅僅是一個猜測。

2

您可以使用java Reflection找出超類。

+0

看來,Java的反射值得一試。謝謝你提供信息! – Ida 2011-04-09 04:16:11