Condividi:        

[Java] Ricerca dei metodi

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

[Java] Ricerca dei metodi

Postdi Ivan_J_147 » 06/04/08 11:52

Ciao a tutti.
Se io ho il codice:
class Veicolo { void speed(long a){System.out.println("V");}}
class Auto extends Veicolo{ void speed(int b) {System.out.println("A");}}
int x = 2;
Veicolo b = new Auto();
b.speed(x);

Object b2 = new Date();
String s = b2.toString();

come mai quando va a cercare il metodo speed usa quello della superclasse Veicolo mentre quando uso toString va ad usare quello della sottoclasse Date?
Nel senso... in che modo Java sceglie se usare i metodi delle sottoclassi o delle superclassi?
Ivan_J_147
Utente Junior
 
Post: 86
Iscritto il: 04/09/06 15:32

Sponsor
 

Re: [Java] Ricerca dei metodi

Postdi mrblue » 07/04/08 10:04

innanzi tutto il metodo speed che hai nella classe auto fa l'overriding del metodo della superclass (in uno c'è int come parametro e nell'altro c'è long) e quindi dipende da quale chiami.
poi il toString non lo vedo definito in nessuna delle 2 classi quindi usi quello dell'Object.
Se vuoi fare overloading dei metodi devi usare la stessa firma del metodo da ricoprire.
Codice: Seleziona tutto
class Veicolo { void speed(long a){System.out.println("V");}}
class Auto extends Veicolo{ void speed(int b) {System.out.println("A");} void speed(long a){System.out.println("A");}}
int x = 2;
long l=1;
Veicolo b = new Auto();
b.speed(x); ==>A
b.speed(l); ==>A
Sbagliare è umano, ma per riuscire davvero a incasinare completamente le cose ci vuole un computer.
---------------------
http://mrblue73.blogspot.com/
mrblue
Utente Senior
 
Post: 364
Iscritto il: 22/10/01 01:00
Località: Roma


Torna a Programmazione


Topic correlati a "[Java] Ricerca dei metodi":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti