Dans le contexte de Java, veuillez expliquer quelle est une méthode "polymorphe". p>
5 Réponses :
"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 donc, par exemple p> considérer maintenant un exemple p> la forme code>, avec des sous-classes
cercle code>,
carré code> et
rectangle code> et méthode
() code>.
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());
La question demande la méthode polymorphe et non ce que le polymorphisme est.
La réponse de Charlie explique en termes simples ce que le polymorphisme est.
continue de là, ce serait une "méthode polymorphe": p> c'est "polymorphe" dans le Sens que sa signature indique que vous obtenez une forme code> code>, mais ce que vous êtes vraiment em> obtenir est une sous-classe de 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. P> p> forme code>. Puisque vous ne savez pas exactement ce que vous obtenez (pourrait être un coeur code>, un
carré code>, etc.), vous devez le gérer à l'aide de l'interface de la superbe classe ( C'est-à-dire, polymorphisme). P>
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?
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
Une méthode est la signature polymorphe si tous les éléments suivants sont VRAI: P>
Il est déclaré dans la classe java.lang.invoke.methodhandle. p>
Il a un seul paramètre formel de type objet []. P>
Il a un type de retour d'objet. P>
Il a les drapeaux ACC_VARARGS et ACC_NATIFS définies. P>
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. P>
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 . p> 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>
animal.sleep();
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