Javas instanceof Operator ist nicht nur wahr für die Klasse der ein Objekt angehört sondern auch für sämtliche Elternklassen. Das folgende Beispiel
class instance
{
static class A {}
static class B extends A {}
static<T> void println(T arg) { System.out.println(arg); }
public static void main (String[] args)
{
A a = new A();
B b = new B();
A c = b;
println (a instanceof A);
println (a instanceof B);
println (b instanceof A);
println (b instanceof B);
println (c instanceof A);
println (c instanceof B);
}
}
generiert die folgende Ausgabe:
$ javac -cp . -Xlint:unchecked instance.java && java instance
true
false
true
true
true
true
Lediglich Objekte der Elternklasse sind keine Instanz einer Kindklasse.
Keine Kommentare:
Kommentar veröffentlichen