Ich möchte in Bezug auf folgendes Verhalten von instanceof
-Operator in Java wissen.Der 'instanceof'-Operator verhält sich für Schnittstellen und Klassen unterschiedlich
interface C {}
class B {}
public class A {
public static void main(String args[]) {
B obj = new B();
System.out.println(obj instanceof A); //Gives compiler error
System.out.println(obj instanceof C); //Gives false as output
}
}
Warum ist es so? Es gibt keine Beziehung zwischen interface C
und class B
, aber es gibt falsch, während im Falle es Compiler Fehler gibt?
Hinweis: Wenn Sie es in 'Object obj = new B()' ändern, wird es kompiliert. – immibis
Was sagt Ihnen der Compiler Fehler? – karfau
Wenn "Klasse B" "final" ist, wird auch "obj instanceof C" nicht kompiliert, denn wenn "B" keine Subtypen haben kann, dann ist garantiert, dass sie nicht mit "C" in Beziehung stehen. – jaco0646