// esempio di overloading: public void println (int i) public void println (float f) public void println (String s) // esempio di polimorfismo e uso dell'operatore public class Impiegato extends Object public class Manager extends Impiegato public class Contrattore extends Impiegato ... public void method (Impiegato i) { if (e instanceof Manager) { // stampa tutti i campi di Impiegato // piu' quelli propri di Manager } else if (e instanceof Contrattore) { // stampa tutti i campi di Impiegato // piu' quelli propri di Contrattore } else { // e' un normale Impiegato... } } // esempio di overriding public class Impiegato { String nome; int salario; public String getDetails () { return "Nome="+nome+"\nStipendio"+salario; } } public class Manager extends Impiegato { String dipartimento; public String getDetails () { return "Nome="+nome+"\nManager di "+dipartimento; } }