Salve,
in questo esercizio mi si dice che l'errore e a riga 13 perchè non si può fare il cast a B di un oggetto di tipo A ma secondo me è già errore a riga 12 perchè aArray referenzia un oggetto array d tipo B e io assegno a aArray[0] un oggetto di tipo A. Che ne dite?
e il seguente main program (nello stesso package di A e B):codice:public class A { public void f() { System.out.println("f di A"); } } public class B extends A { public void f() { System.out.println("f di B"); } public void g() { System.out.println("g di B"); } }
codice:public class es5 { public static void main(String[] args) { B[] bArray = new B[1]; bArray[0] = new B(); A[] aArray = new A[1]; aArray[0] = new A(); aArray = bArray; ((A)aArray[0]).f(); aArray[0] = new A(); // Riga 12 ((B)aArray[0]).f(); // Riga 13 } }

Rispondi quotando


