[Sottoclassi]Individuare il massimo di un valore della sottoclasse

di il
3 risposte

[Sottoclassi]Individuare il massimo di un valore della sottoclasse

Salve,
prima di descrivere il mio problema, comincio nel dirvi che ho una
SuperClasse: Medico
Sottoclasse 1: MedicoGenerico(tra le sue variabili d'istanza: numVisite)
Sottoclasse 2: MedicoSpecializzato(tra le sue variabili d'istanza: numVisite)

La classe Ospedale contiene una lista di Medici.
Implementare nella classe Ospedale un metodo che individui il medico con il numero maggiori di visite.

Il problema sorge quando devo confrontare il primo elemento della lista (che è pero di tipo Medico), con il prossimo elemento.
public Medico medicoMaxVisite()
	{

		
		//il primo elemento sarà l'elemento maggiore
		Medico max = medici.get(0);
		//avvio un ciclo per individuare il medico con il numero di visite maggiori
		for(Medico temp: medici)
		{
			//nel caso in cui si tratta di un medico generico posso richiamare il metodo getnVisite
			if(temp instanceof MedicoGenerico)
			{
				if(((MedicoGenerico) temp).getnVisite()>max);max essendo di tipo Medico non può richiamare getnVisite
				{
					
				}
			}
		}
	}
Come posso risolvere?

3 Risposte

  • Re: [Sottoclassi]Individuare il massimo di un valore della sottoclasse

    rairana ha scritto:


    SuperClasse: Medico
    Sottoclasse 1: MedicoGenerico(tra le sue variabili d'istanza: numVisite)
    Sottoclasse 2: MedicoSpecializzato(tra le sue variabili d'istanza: numVisite)
    Prima questione: perché il concetto di "numero di visite" non è già in Medico, la super-classe?

    rairana ha scritto:


    if(((MedicoGenerico) temp).getnVisite()>max)
    Seconda questione: questo test comunque non ha senso. max è un Medico mentre getnVisite() ti dà invece, presumo, un int. Quindi staresti comparando "patate con mele".

    Quindi: a) puoi cambiare quelle classi? oppure b) se no, si può fare ma prestando più attenzione.
  • Re: [Sottoclassi]Individuare il massimo di un valore della sottoclasse

    andbin ha scritto:


    rairana ha scritto:


    SuperClasse: Medico
    Sottoclasse 1: MedicoGenerico(tra le sue variabili d'istanza: numVisite)
    Sottoclasse 2: MedicoSpecializzato(tra le sue variabili d'istanza: numVisite)
    Prima questione: perché il concetto di "numero di visite" non è già in Medico, la super-classe?

    rairana ha scritto:


    if(((MedicoGenerico) temp).getnVisite()>max)
    Seconda questione: questo test comunque non ha senso. max è un Medico mentre getnVisite() ti dà invece, presumo, un int. Quindi staresti comparando "patate con mele".

    Quindi: a) puoi cambiare quelle classi? oppure b) se no, si può fare ma prestando più attenzione.
    ma lo so che il confronto con max non ha senso, infatti li era il mio dubbio.
    Prova a inserire la variabile anche nella superClasse;
  • Re: [Sottoclassi]Individuare il massimo di un valore della sottoclasse

    rairana ha scritto:


    Prova a inserire la variabile anche nella superClasse;
    Non "anche". Se la nozione di numero di visite (campo + getter/setter) la metti nella superclasse Medico, allora poi NON devi ripetere la cosa nelle sottoclassi.
Devi accedere o registrarti per scrivere nel forum
3 risposte