Sono molto confuso con Overriding Constructors. Costruttore non può essere ignorato è il risultato quello che ottengo quando ho cercato in Google la mia domanda èOverriding Construct
public class constructorOverridden {
public static void main(String args[]) {
Sub sub = new Sub();
sub.test();
}
}
class Super {
Super() {
System.out.println("In Super constructor");
test();
}
void test() {
System.out.println("In Super.test()");
}
}
class Sub extends Super {
Sub() {
System.out.println("In Sub constructor");
}
void test() { // overrides test() in Super
System.out.println("In Sub.test()");
}
}
quando ho eseguito questo ho ottenuto il risultato come
In Super constructor
In Sub.test()
In Sub constructor
In Sub.test()
pls notano il metodo di prova in sottoclasse viene eseguito. È dimostrato che il costruttore della Superclasse è sovrascritto. Se è corretto?
Quindi, quale approccio dovrebbe essere usato quando si evita di "chiamare metodi sovrascritti nei costruttori"? Quello che stavo cercando di realizzare è il flusso di base in un costruttore di super classi che chiama i metodi astratti init(), build() then fill(). In modo che tutte le sottoclassi debbano subire lo stesso flusso! – Akshat
@Akshat: Beh, sembra che rientri nella categoria "documento molto chiaro". Di solito c'è un * qualche * modo di progettare intorno a questo, ma è difficile dare una ricetta generale. –
Se potessi dare un link a quei modi, sarebbe fantastico! – Akshat