Se non vuoi ripetere il codice (giustamente) prendi un parametro booleano printPage nel metodo della classe astratta, e nella sottoclasse invochi il metodo della superclasse passandogli true... ovviamente è un po' una pezza giusto per risolvere il problema velocemente, se ogni sottoclasse deve cambiare qualcosa di diverso in quel metodo devi rendere il metodo della classe astratta un po' flessibile.Originariamente inviato da Grambo
Sto programmando il metodo per la stampa a video dei risultati del programma
sto sfruttando la classe abstract (creata per altri motivi) e il metodo lo sto inserendo in questa
nelle varie classi che estendono l'abstract devo aggiungere una riga divresa in base alla classecodice:public void getRegistro(){ if (registro.length>0){ System.out.println(titolo); System.out.println("del "+anno); for (int i=0;i<registro.length;i++){ registro[i].inizio.getData(); registro[i].fine.getData(); System.out.print("prestato a "); registro[i].cliente.getUtente(); System.out.println(" per "+registro[i].inizio.getDurata(registro[i].fine)+" giorni"); } System.out.println("\n"); } }
come devo fare? l'override lo devo fare su tutto il metodo? (per es.)
se si..in questo caso, è inutile inserire il metodo nell'abstract.. giusto?codice:public void getRegistro(){ if (registro.length>0){ System.out.println(titolo); System.out.print("del "+anno); System.out.println("\t\t\t"+pag+" pag."); //cambia solo questo for (int i=0;i<registro.length;i++){ registro[i].inizio.getData(); registro[i].fine.getData(); System.out.print("prestato a "); registro[i].cliente.getUtente(); System.out.println(" per "+registro[i].inizio.getDurata(registro[i].fine)+" giorni"); } System.out.println("\n"); } }![]()
(usa l'annotazione @Override quando ridefinisci i metodi)

) e il metodo lo sto inserendo in questa
Rispondi quotando