/*
 * "Grundkurs Programmieren in Java - Band 1 (4. Auflage, 2007)"
 * 2001-2007, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe 11.4 (Version 4.0)
 * (c) 2001-2007 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

class Vater {};
class Sohn extends Vater{};
class Waehrung {};

// Hierarchie: vgl. Abbildung 11.3 im Buch

/* ****************************************************************** */

public class InstanceOfTest {

  public static void main (String[] args) {

    Vater vaeterchen = new Vater();
    Sohn  soehnchen  = new Sohn();
    //Object vaeterchen = new Vater();
    //Object  soehnchen  = new Sohn();

    System.out.println( vaeterchen instanceof Sohn     );
    System.out.println( vaeterchen instanceof Vater    );
    //System.out.println( vaeterchen instanceof Waehrung );
    System.out.println( vaeterchen instanceof Object   );
    System.out.println( soehnchen  instanceof Sohn     );
    System.out.println( soehnchen  instanceof Vater    );
    //System.out.println( soehnchen  instanceof Waehrung );
    System.out.println( soehnchen  instanceof Object   );

  }

}

/*

E:\hiwi\temp>javac InstanceOfTest.java
InstanceOfTest.java:28: inconvertible types
found   : Vater
required: Waehrung
    System.out.println( vaeterchen instanceof Waehrung ); //
                        ^
InstanceOfTest.java:32: inconvertible types
found   : Sohn
required: Waehrung
    System.out.println( soehnchen  instanceof Waehrung );   //
                        ^
2 errors

*/
