java中的多态方法是什么?
请在 Java 的上下文中解释什么是多态方法".
In the context of Java, please explain what a "polymorphic method" is.
推荐答案
多态"的意思是多种形状".在 Java 中,您可以拥有一个超类,其子类使用相同的名称来做不同的事情.传统的例子是超类 Shape
,子类 Circle
、Square
和 Rectangle
,以及方法 area()
.
"Polymorphic" means "many shapes." In Java, you can have a superclass with subclasses that do different things, using the same name. The traditional example is superclass Shape
, with subclasses Circle
, Square
, and Rectangle
, and method area()
.
所以,例如
// 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; }
}
现在考虑一个例子
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()
调用Circle.area()
,s[1].area()
调用Square.area()
-- 因此我们说 Shape
及其子类利用对方法区域的多态调用.
s[0].area()
calls Circle.area()
, s[1].area()
calls Square.area()
-- and thus we say that Shape
and its subclasses exploit polymorphic calls to the method area.
相关文章