Class中有个方法 public native boolean isAssignableFrom(Class<?> cls)用来判断子类是否继承于父类的或者父接口的。
你会这样子写:
Class clazz = ....;
clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。
clazz.isAssignableFrom(子类名称)里的子类名称跟版本有关,好像是1.5以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是
class<T> 类型的,你用的时候自己斟酌下版本问题。
而常用的instanceof(class ..)是指该实例是否属于挂号中的类的父类的一个实例。 
如上面的例子:class Supclass {}public class TestClass extends Supclass {
public static void main(String[] args) {
Class clazz = TestClass.class;
Class class1 = Supclass.class;
System.out.println(class1.isAssignableFrom(clazz));
if (class1.isAssignableFrom(clazz)) {
System.out.println("Supclass是TestClass的父类");
} else {
System.out.println("Supclass不是TestClass的父类");
}
}
}接口的话也一样的:如下
package linearStruct;public interface TestInterface {}class subclass implements TestInterface {
public static void main(String[] args) {
Class clazz = subclass.class;
Class class1 = TestInterface.class;
System.out.println(class1.isAssignableFrom(clazz));
if (class1.isAssignableFrom(clazz)) {
System.out.println("TestInterface是subclass的父类");
} else {
System.out.println("TestInterface不是subclass的父类");
}
}
}继承编程