Originariamente inviato da magonicola
ovviamente vengono usati nel main i metodi dei figli.
Non ti sono chiare alcune cose molto importanti. Innanzitutto il concetto di override. Hai una classe B che estende la classe A, in B viene fatto l'override di un metodo della classe A. Se tu hai istanziato un oggetto della classe B, che tu usi un reference ad A o B, il metodo chiamato è sempre quello di B.

In parole povere, nel caso dell'override, non si usa il tipo del reference per stabilire quale implementazione del metodo eseguire ma viene usato il tipo dell'oggetto reale per stabilire quale implementazione eseguire!!!

Come seconda cosa c'è una questione concettuale che riguarda la ereditarietà. Hai fatto un esempio di ereditarietà che fa abbastanza rabbrividire: hai definito una classe Figlio che estende Padre. Quando usi l'ereditarietà, devi sempre farti una domanda: data una classe B che estende A, è vero che B è-un A???.
Nel tuo caso specifico: un Figlio è-un Padre??? NO.