「java判断继承」Java中的继承

博主:adminadmin 2022-11-25 04:17:04 52

本篇文章给大家谈谈java判断继承,以及Java中的继承对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA如何判断两个类之间是否满足继承关系?

Class中有个方法 public native boolean isAssignableFrom(Class? cls)用来判断子类是否继承于父类的或者父接口的。

你会这样子写:

Class clazz = ....;

clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。

clazz.isAssignableFrom(子类名称)里的子类名称跟版本有关,好像是1.5以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是

classT 类型的,你用的时候自己斟酌下版本问题。

而常用的instanceof(class ..)是指该实例是否属于挂号中的类的父类的一个实例。

如上面的例子:

class A{

}

public class B extends A{

public static void main(String[] args){

Class clazz = B.class;

Class class1 = A.class;

System.out.println(class1.isAssignableFrom(clazz));

if(class1.isAssignableFrom(clazz)){

System.out.println("A是B的父类");

}else{

System.out.println("A不是B的父类");

}

}

}

接口的话也一样的:如下

public interface A {

}

public class B implements A{

public static void main(String[] args) {

Class clazz = B.class;

Class class1 = A.class;

System.out.println(class1.isAssignableFrom(clazz));

if(class1.isAssignableFrom(clazz)){

System.out.println("A是B的父类");

}else{

System.out.println("A不是B的父类");

}

}

}

你测试时只需要把extends A和implements A去掉那就是A不是B的父类或者父接口的情况。 这就是java反射机制的精髓啊

JAVA如何判定方法是继承的

无论重写不重写,一个类里面不可能存在同名同参数的两个方法。你可以通过他们参数不同来区分

其实不加@Override也没关系,只要你子类的方法和父类的方法同名,同参,参数顺序一样,就算作重写了。

如果你把supper.xxx也算进去就理解错了,super调用的是父类的方法,不是你这个类的

java instanceof 判断继承

import javax.swing.JApplet;

public class ClassTest {

// 一个判断son是否直接继承自father的简单函数

public static boolean genericCheck(Class? son, Class? father) {

return son.getGenericSuperclass() == father;

}

public static void main(String[] args) {

System.out.println(ClassTest.genericCheck(String.class, Object.class));

System.out.println(ClassTest.genericCheck(Sim.class, Object.class));

System.out.println(ClassTest.genericCheck(Sim.class, JApplet.class));

System.out.println(ClassTest.genericCheck(Sim.class, Comparable.class));

//你在你的程序里,这样输出一下就知道了,A是否直接继承了B.

//System.out.println(ClassTest.genericCheck(A.class, B.class));

}

}

class Sim extends JApplet implements java.lang.ComparableObject {

private static final long serialVersionUID = 1L;

public int compareTo(Object o) {

return 0;

}

}

关于java判断继承和Java中的继承的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。