OVH Cloud OVH Cloud

"surcharge" et "redéfinition de méthodes": c'est la même chose ?

9 réponses
Avatar
MxT
bonjour,

"surcharge" et "redéfinition de méthodes" désignent-elles la
même chose ?

merci
Mxt

9 réponses

Avatar
Sebastien Mathy
MxT <noSpam> wrote:

bonjour,

"surcharge" et "redéfinition de méthodes" désignent-elles la
même chose ?

merci
Mxt


Non
Redifinition : fourniture d'une nouvelle implémentation à une méthode
héritée sans changer la signature.

class A {
A() {}
}

class B extends A {
A(){
toString();
}

Surcharge : Ajout d'une nouvelle méthode de nom identique mais de signature
differente
Ex :

class A {
A(){}
A(A a){}
}

Cordialement.

Avatar
Yogo
"MxT" <noSpam> a écrit:
bonjour,

"surcharge" et "redéfinition de méthodes" désignent-elles la
même chose ?


Salut,

Non, la surcharge ça veut dire créer une méthode avec le même nom qu'une
méthode déjà existante mais avec des paramètres différents. Par exemple:

public void maMethode(){}

public void maMethode(String s){}

La méthode maMethode() est surchargée par la méthode maMethode(String s).

La redéfinition d'une méthode veut dire qu'une méthode dans une superclasses
est redéfinie dans une sous-classe. Par exemple:

public class c {
public void maMethode(){ /* code */ }
}

public class d extends c {
public void maMethode(){ /* code */ }
}

La méthode maMethode() dans la classe c est redéfinie dans la sous-classe d.


Yogo

Avatar
MxT

Surcharge : Ajout d'une nouvelle méthode de nom identique mais de signature
differente
Ex :

class A {
A(){}
A(A a){}
}



Merci pour la réponse.
Si j'ai bien compris : la surcharge est l'ajout d'une nouvelle méthode
de nom identique DANS LA MEME classe (et non pas dans
une autre classe) ? C'est bien ça ?
Merci
Mxt

Avatar
MxT

Redifinition : fourniture d'une nouvelle implémentation à une méthode
héritée sans changer la signature.

class A {
A() {}
}

class B extends A {
A(){
toString();
}


ok. merci, c'est très clair :-)
MxT

Avatar
MxT

Non, la surcharge ça veut dire créer une méthode avec le même nom qu'une
méthode déjà existante mais avec des paramètres différents.


OK, mais cette nouvelle méthode de même non (mais avec des types de
paramètres différents) est à définir DANS LA MEME classe ?

La redéfinition d'une méthode veut dire qu'une méthode dans une superclasses
est redéfinie dans une sous-classe. Par exemple:

public class c {
public void maMethode(){ /* code */ }
}

public class d extends c {
public void maMethode(){ /* code */ }
}


OK, merci bien, c'est très clair.
MxT

Avatar
MxT

OK, mais cette nouvelle méthode de même non


oups, il fallait lire "OK, mais cette nouvelle méthode de même nom.."
Mxt

Avatar
MxT

Surcharge : Ajout d'une nouvelle méthode de nom identique mais de signature
differente
Ex :

class A {
A(){}
A(A a){}
}


Je viens de penser à un truc : un exemple courant de surcharge est la
définition de plusieurs constructeurs pour une même classe, non ?
MxT

Avatar
Sebastien Mathy
MxT <noSpam> wrote:


Surcharge : Ajout d'une nouvelle méthode de nom identique mais de
signature differente
Ex :

class A {
A(){}
A(A a){}
}


Je viens de penser à un truc : un exemple courant de surcharge est la
définition de plusieurs constructeurs pour une même classe, non ?
MxT


Exact


Avatar
Sebastien Mathy
MxT <noSpam> wrote:


Surcharge : Ajout d'une nouvelle méthode de nom identique mais de
signature differente
Ex :

class A {
A(){}
A(A a){}
}



Merci pour la réponse.
Si j'ai bien compris : la surcharge est l'ajout d'une nouvelle méthode
de nom identique DANS LA MEME classe (et non pas dans
une autre classe) ? C'est bien ça ?



Cela peut aussi être dansd une sous classe.