Java反射可通过Class对象获取类的直接父类和实现接口。使用getSuperclass()获取直接父类,若为Object、基本类型或数组则返回null;通过getInterfaces()获取直接实现的接口数组,不包含父类实现的接口。示例显示Dog类获取Animal父类,Duck类获取Swimmable接口及父类Bird实现的Flyable接口。需递归遍历继承链才能获取全部父类与接口信息。

Java反射机制可以通过Class对象获取一个类的父类和实现的接口信息。这在框架开发、序列化、依赖注入等场景中非常有用。
获取父类信息
使用getSuperclass()方法可以获取当前类的直接父类的Class对象。
说明:
如果该类是Object、基本类型或数组类型,返回null。 只能获取直接父类,不能获取继承链上的所有祖先类。
示例代码:
立即学习“Java免费学习笔记(深入)”;
class Animal {}class Dog extends Animal {}public class Test { public static void main(String[] args) { Class clazz = Dog.class; Class superClass = clazz.getSuperclass(); System.out.println("父类名称: " + superClass.getName()); // 输出: Animal }}获取实现的接口信息
使用
getInterfaces()方法可以获取当前类或接口直接实现的所有接口的Class数组。
凹凸工坊-AI手写模拟器
AI手写模拟器,一键生成手写文稿
500 查看详情
![]()
注意:
只返回当前类“直接实现”的接口,不包括父类实现的接口。 若想获取所有相关接口(包括继承链中的),需要递归遍历父类和接口。
示例代码:
立即学习“Java免费学习笔记(深入)”;
interface Flyable { void fly(); }interface Swimmable { void swim(); }class Bird implements Flyable { public void fly() { System.out.println("Bird is flying"); }}class Duck extends Bird implements Swimmable { public void swim() { System.out.println("Duck is swimming"); }}public class InterfaceTest { public static void main(String[] args) { Class clazz = Duck.class; Class[] interfaces = clazz.getInterfaces(); System.out.println("Duck直接实现的接口:"); for (Class intf : interfaces) { System.out.println(intf.getName()); // 输出: Swimmable } // 获取父类实现的接口(如Flyable) Class superClazz = clazz.getSuperclass(); Class[] superInterfaces = superClazz.getInterfaces(); for (Class intf : superInterfaces) { System.out.println("父类实现的接口: " + intf.getName()); // 输出: Flyable } }}补充:获取完整的继承与接口层次结构
如果需要获取一个类所有的父类和接口(包括间接的),可以编写递归或循环方法遍历整个类层级。
建议步骤:
从当前类开始,通过
getSuperclass()逐级向上直到Object或null。 对每一层调用getInterfaces()收集接口。 可结合java.lang.reflect.Modifier判断类是否为接口或抽象类。基本上就这些。利用反射获取类的继承和接口信息并不复杂,但要注意区分“直接”和“间接”关系,按需处理层级结构。以上就是Java反射机制如何获取对象的父类和接口信息的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/900023.html
微信扫一扫
支付宝扫一扫