Come posso spiegare A a = new B () ;?

0

Diciamo che abbiamo una struttura di classi:

     public interface IA { public void doA(); }
     public class A implements IA { public void doA(){ System.out.println("A class doA");}
     public class B extends A { public void doA(){ System.out.println("B class doA"); }

E ora in un main dichiaro questo:

     //in a main
     IA ia = new B();
     ia.doA();

Sono corretto affermando che l'oggetto runtime di ia è una classe B e ha ereditato tutti i metodi e gli attributi delle super-classi?

La stampa dall'interno dell'immaginario principale è B class doA come il metodo doA in B nasconderà gli stessi metodi nelle sue super classi?

    
posta user1501127 05.03.2014 - 13:32
fonte

1 risposta

4

Sì, hai ragione.

  1. ia è di classe B
  2. ia è anche di classe A poiché B eredita A .
  3. B overrrides A 's doA() method.
risposta data 05.03.2014 - 13:58
fonte

Leggi altre domande sui tag