vineri, 9 iulie 2010

Din capcanele polimorfismului (2)

/**
 * Scurta demonstratie despre folosirea operatorului "instanceof"
 * De ce penultima linie nu se compileaza? dar ultima de ce se
 * compileaza ?
 * Ce se afiseaza la consola cand rulati main()? (dupa stergerea
 * sau comentarea liniei cu eroare)
 */
public class Polimorfism {
    public static void main (String [] args){
        ClasaC obiectC = new ClasaC();
        Object ob = new Object();
        System.out.println(obiectC instanceof ClasaA);
        System.out.println(obiectC instanceof ClasaB);
        System.out.println(obiectC instanceof ClasaC);
        System.out.println(obiectC instanceof Object);
        System.out.println(obiectC instanceof InterfataA);
        System.out.println(obiectC instanceof InterfataB);
//linia urmatoare nu se compileaza:
        System.out.println(obiectC instanceof Polimorfism); 
// dar linia de mai jos se compileaza !?
        System.out.println(ob instanceof Polimorfism);    
    }
}

class ClasaA{}

class ClasaB extends ClasaA {}

interface InterfataA {}

interface InterfataB extends InterfataA {}

class ClasaC extends ClasaB implements InterfataB {}
 

Niciun comentariu:

Trimiteți un comentariu