java中的多态方法是什么?

2022-01-24 00:00:00 polymorphism terminology java

请在 Java 的上下文中解释什么是多态方法".

In the context of Java, please explain what a "polymorphic method" is.

推荐答案

多态"的意思是多种形状".在 Java 中,您可以拥有一个超类,其子类使用相同的名称来做不同的事情.传统的例子是超类 Shape,子类 CircleSquareRectangle,以及方法 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.

相关文章