java 如何判断一个类是否是另一个类的子孙类

例如:A extends B , B extends C, C extends D, 那么A B C 应该都是D的子孙类,其中 B C D 都是抽象类,有没有什么方法可以判断 B 是 D 的子孙类?

[code="java"]Class clazzB = B.class;
Class clazzD = D.class;
boolean isFather = clazzD.isAssignableFrom(clazzB));
if(isFather){
System.out.println("D是B的父类");
}else{
System.out.println("D不是B的父类");
}[/code]

isInstance()方法或instanceof

A.class.isAssignableFrom(B.class); //判断A是否是B类的子类

A instanceof B

instanceof可以判断类型