La determinación de si una clase Java es un descendiente de otro tipo de clase

 Definición de tres clases, la siguiente relación

class A {}

class B extends A {}

class C extends B {}

Tres métodos de prueba instanceof, isInstance, isAssignableFrom

Código de ensayo de la siguiente manera

A a = new C();
B b = new C();
C c = new C();


System.out.println(a instanceof B); // true
System.out.println(b instanceof B); // true
System.out.println(c instanceof B); // true

System.out.println(A.class.isInstance(B.class)); // false
System.out.println(B.class.isInstance(B.class)); // false
System.out.println(C.class.isInstance(B.class)); // false

System.out.println(A.class.isAssignableFrom(B.class)); // true
System.out.println(B.class.isAssignableFrom(B.class)); // true
System.out.println(C.class.isAssignableFrom(B.class)); // false

conclusión:

1, se determina si un objeto es una clases de objeto descendiente de una clase, se puede utilizar directamente un instanceof B, o B.class.isAssignableFrom (a.getClass ());

2, cuando no hay clase de objeto se determina si un descendiente de otra clase, solamente B.class.isAssignableFrom (C.class);

pasar:

Sé el segundo con más. . .

 

Publicado 16 artículos originales · ganado elogios 3 · Vistas 4525

Supongo que te gusta

Origin blog.csdn.net/qq_29697901/article/details/102788869
Recomendado
Clasificación