Ich würde gerne wissen, wie sich der instanceof
Operator in Java verhält.
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
}
}
Wieso ist es so? Es gibt keine Beziehung zwischen interface C
und class B
, aber es gibt falsch, während im Falle, wenn es obj instanceof A
Compilerfehler gibt?
class B
is wird final
dann obj instanceof C
auch nicht kompiliert, da if B
keine Subtypen haben kann, ist garantiert, dass es keine Beziehung zu hat C
.
Object obj = new B()
wird es kompiliert.