7
votes

Quelle est la méthode polymorphe en Java?

Dans le contexte de Java, veuillez expliquer quelle est une méthode "polymorphe".


4 commentaires

Avez-vous des problèmes avec le terme (c'est-à-dire paraphraser l'aide)? Ou avez-vous des problèmes avec le concept de polymorphisme?


D'abord comprenez-vous le polymorphisme?


Tutoriel Sunoracle sur le polymorphisme à Java


question connexe dans ce site même


5 Réponses :


19
votes

"polymorphe" signifie "nombreuses formes". En Java, vous pouvez avoir une superclasse avec des sous-classes qui font des choses différentes, en utilisant le même nom. L'exemple traditionnel est la superclasse la forme code>, avec des sous-classes cercle code>, carré code> et rectangle code> et méthode () code>.

donc, par exemple p> xxx pré>

considérer maintenant un exemple p>

Shape s[] = new Shape[2];

s[0] = new Circle(10);
s[1] = new Square(10);

System.out.println("Area of s[0] "+s[0].area());
System.out.println("Area of s[1] "+s[1].area());


1 commentaires

La question demande la méthode polymorphe et non ce que le polymorphisme est.



7
votes

La réponse de Charlie explique en termes simples ce que le polymorphisme est.

continue de là, ce serait une "méthode polymorphe": xxx

c'est "polymorphe" dans le Sens que sa signature indique que vous obtenez une forme , mais ce que vous êtes vraiment obtenir est une sous-classe de forme . Puisque vous ne savez pas exactement ce que vous obtenez (pourrait être un coeur , un carré , etc.), vous devez le gérer à l'aide de l'interface de la superbe classe ( C'est-à-dire, polymorphisme).

Je devrais mentionner que (éventuellement parce que je n'ai que peu d'expérience avec Java) "méthode polymorphe" est un terme inconnu afin qu'il puisse être utilisé pour signifier autre chose. C'est juste mon interprétation.


2 commentaires

Ce n'est pas ce qu'est la méthode polymorphe en Java. Regardez mon ANS


Où est votre réponse @ numéro945? Votre lien ne le pointe pas. Pourriez-vous expliquer quelle méthode phoymorphique est en Java?



0
votes

Le polymorphisme est un processus de représentation «une forme d'une forme sous plusieurs formes».

Ce n'est pas un concept de programmation, mais c'est l'un des principes. P>

Example 1 :

class A
{
 void print(double d)
 {
  System.out.println("Inside Double");
 }
 void print(float f)
 {
  System.out.println("Inside Float");
 }
}
class B
{
 public static void main(String [ ] args)
 {
  A obj1 = new A();
  obj1.print(10.0);
 }
}


Output :

//save as : B.java
//compile as :javac B.java
//run as : java B

Inside Double

______________________


Example 2 :

class A
{
 void print(double d)
 {
  System.out.println("Inside Double");
 }
 void print(float f)
 {
  System.out.println("Inside Float");
 }
}
class B
{
 public static void main(String [ ] args)
 {
  A obj1 = new A();
  obj1.print(10.0f);
 }
}


Output :

//save as : B.java
//compile as :javac B.java
//run as : java B

Inside Float

_______________________

Example 3 :

class A
{
 void print(double d)
 {
  System.out.println("Inside Double");
 }
 void print(float f)
 {
  System.out.println("Inside Float");
 }
}
class B
{
 public static void main(String [ ] args)
 {
  A obj1 = new A();
  obj1.print(10);
 }
}


Output :

//save as : B.java
//compile as :javac B.java
//run as : java B

Inside Float


0 commentaires

0
votes

Une méthode est la signature polymorphe si tous les éléments suivants sont VRAI:

Il est déclaré dans la classe java.lang.invoke.methodhandle.

Il a un seul paramètre formel de type objet [].

Il a un type de retour d'objet.

Il a les drapeaux ACC_VARARGS et ACC_NATIFS définies.

En Java SE 8, les seules méthodes polymorphes signes sont les méthodes d'invoke et d'invokeexact de la classe Java.lang.invoke.methodhandle.

Spécification JVM 2.9. Méthodes spéciales


0 commentaires

0
votes

Une méthode polymorphe est une méthode qui peut prendre de nombreuses formes em>. Par ce que je veux dire, la méthode peut à différents moments d'invoquer différentes méthodes.

Disons que vous avez un animal de classe code> et un chien de classe étend animal code> et un Class Cat étend un animal code>, et ils remplacement em> la méthode SLEEP () code> p>

. p>

animal.sleep();


0 commentaires