Ich studiere Java-Sprache für SCJP-Test.Was ist eine polymorphe Methode in Java?
Es ist ein bisschen schwer zu verstehen "polymorphe Methode".
Können Sie es mir erklären? oder gib mir ein paar Links?
Ich studiere Java-Sprache für SCJP-Test.Was ist eine polymorphe Methode in Java?
Es ist ein bisschen schwer zu verstehen "polymorphe Methode".
Können Sie es mir erklären? oder gib mir ein paar Links?
"Polymorph" bedeutet "viele Formen." In Java können Sie eine Oberklasse mit Unterklassen haben, die verschiedene Dinge tun und denselben Namen verwenden. Das traditionelle Beispiel ist die Superklasse Shape
mit den Unterklassen Circle
, Square
und Rectangle
und das Verfahren area()
.
So zum Beispiel
// note code is abbreviated, this is just for explanation
class Shape {
public int area(); // no implementation, this is abstract
}
class Circle {
private int radius;
public Circle(int r){ radius = r ; }
public int area(){ return Math.PI*radius*radius ; }
}
class Square {
private int wid;
Public Square(int w){ wid=w; }
public int area() { return wid*wid; }
}
nun ein Beispiel
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());
s[0].area()
Anrufe Circle.area()
, s[1].area()
Anrufe Square.area()
betrachten - und damit wir sagen, dass Shape
und ihre Unterklassen polymorphe Aufrufe an die Methode ausnutzen Bereich.
Charlies Antwort erklärt in einfachen Worten, was Polymorphismus ist.
von dort fortsetzen, würde dies eine „polymorphe Methode“ sein:
public void Shape CreateShape() {
return new Circle(10);
}
Es ist „polymorphe“ in dem Sinne, dass seine Unterschrift sagt, du bist ein Shape
bekommen, aber was Sie sind wirklich bekommen ist eine Unterklasse von Shape
. Da Sie nicht genau wissen, was Sie bekommen (könnte ein Circle
, ein Square
, etc) sein, müssen Sie es mit der Schnittstelle der Super-Klasse (d. H. Polymorphismus) behandeln.
Ich sollte das erwähnen (möglicherweise, weil ich nur geringe Erfahrung mit Java habe) "polymorphe Methode" ist ein ungewohnter Begriff, so könnte es verwendet werden, um etwas anderes zu bedeuten. Das ist nur meine Interpretation.
Polymorphie ist ein Prozess der Darstellung "einer Form in vielen Formen".
Es ist kein Programmierkonzept, aber es ist eines der Prinzipien.
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
mehr zu wissen - http://algovalley.com/java/polymorphism.php
Verfahren Unterschrift polymorph ist, wenn alle folgenden Bedingungen erfüllt sind:
Es ist in der java.lang.invoke.MethodHandle Klasse deklariert.
Es hat einen einzelnen formalen Parameter vom Typ Object [].
Es hat einen Rückgabetyp von Object.
Es wurden die Flags ACC_VARARGS und ACC_NATIVE gesetzt.
In Java SE 8 sind die einzigen polymorphen Methoden die Methoden invoke und invokeExact der Klasse java.lang.invoke.MethodHandle.
Haben Sie Probleme mit dem Begriff (d. H. Paraphrasierungshilfe)? Oder haben Sie Probleme mit dem Konzept des Polymorphismus? – delnan
Zuerst verstehen Sie Polymorphismus? – jzd
[Sunoracle Tutorial über Polymorphismus in Java] (http://download.oracle.com/javase/tutorial/java/IandI/polymorphism.html) – birryree