Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JAVA] Dubbio con Override

    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?
    http://igr4mbo.altervista.org (piano piano)

    "Abbiamo costruito un sistema che ci persuade a spendere il denaro che non abbiamo in cose che non necessitiamo per creare impressioni che non dureranno su persone che non ci interessano" cit.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: [JAVA] Dubbio con Override

    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)
    effeffe

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.