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
codice:
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");
		}
	}
nelle varie classi che estendono l'abstract devo aggiungere una riga divresa in base alla classe

come devo fare? l'override lo devo fare su tutto il metodo? (per es.)
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");
		}
	}
se si..in questo caso, è inutile inserire il metodo nell'abstract.. giusto?
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.

(usa l'annotazione @Override quando ridefinisci i metodi)