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 } }