Mi intrometto perchè sto approfondendo in questo periodo le gerarchie di classi e il loro utilizzo, quindi può servire come conferma delle mie conoscenze (giuste o sbagliate)
Prendiamo il codice che hai postato e analizziamo questa riga:
Animal b = new Dog();
Il problema nasce perchè Animal non conosce il metodo bark che è contenuto nella classe Dog
per ovviare a questo problema (sia in PHP che in Java) esiste la funziona "instanceof"
ad esempio if (b instanceof Dog) ritorna true se b è un elemento di tipo Dog
una volta effettuato il controllo non ti resta che creare una nuova variabile di tipo Dog che punta all'oggetto b
spero di non aver detto fesserie o almeno di essermi sbagliato di poco.. siete liberi di correggermi! (premetto che sono andato totalmente a memoria e non ho testato ciò che ho scritto.. quindi al 99% ho sbagliato qualcosacomunque guardati bene instanceof e vedrai che una soluzione la trovi da solo!

)
Rispondi quotando