class A {}
class B extends A {}
class C extends A {}
class D extends C {}
class TrueOrFalse {
public static void main(String[] args) {
A a = new A();
B b = new B();
C c = new C();
D d = new D();
A e = new D();
A f = new B();
System.out.println("a) " + (b instanceof A));
System.out.println("b) " + (c instanceof D));
System.out.println("c) " + (d instanceof A));
System.out.println("d) " + (e instanceof C));
System.out.println("e) " + (f instanceof C));
//Tilfelle 1
B ab = (B) a; //Ikke lovlig
//Tilfelle 2
if( e instanceof B ){ //er false, blir derfor ingen feilmelding
//ettersom at neste linje ikke kj?res
B eb = (B) e; //Ikke lovlig, men kj?res ikke. Ikke noe problem
}
//Tilfelle 3
D ed = (D) e; //Lovlig
//Tilfelle 4
if( e instanceof D ){
D edd = (D) e; //Lovlig
}
//Tilfelle 5
B fb = (B) f; //Lovlig
//Tilfelle 6
C ec = (C) e; //Lovlig
}
}