如何获取方法继承信息?

时间:2011-04-08 04:09:25

标签: java inheritance methods

假设类Dog扩展抽象类Animal并实现类Play。 然后,在类Dog中,它实现了继承的抽象方法Animal.eat()和Play.jump()。 想象一下,在Eclipse中,Dog.eat()和Dog.jump()左边会有一个小三角形。如果你把鼠标放在小三角形上,它会告诉你这个方法实现了哪个类的抽象方法。

我想知道如何获取此方法继承信息。我的问题是:如果我有一组.java文件,没有IDE的任何帮助,我怎么能像Eclipse一样提取相同的方法继承信息(比如这个方法实现了哪个类的抽象方法)?

我可以想到一种方法:给定类Dog,我首先获得此类的继承信息,动物和游戏。然后我比较狗和动物/游戏的所有方法签名,看看哪一个实现了什么。但这种方法似乎有点天真,可能效率不高。所以,如果有任何好的方法可以用来获取方法继承信息,请告诉我。

谢谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我认为你所概述的方法是唯一的方法。我可能错了,但是知道从给定接口/类继承哪些方法的唯一方法是检查接口,因此,必须在给定的接口上搜索给定的方法。我想,eclipse会根据继承结构构建一个方法列表,当你将鼠标悬停在给定类中的方法上时,请查询该表以查看它来自哪个类/接口。最后一部分只是一个猜测。