举一个Java中的多态的例子

2023-07-02  本文已影响0人  JAVA加油

举一个Java中的多态的例子。

以下是一个Java中的多态的例子,假设有一个Shape类和两个子类Circle和Rectangle:

public abstract class Shape {    public abstract double area();}public class Circle extends Shape {    private double radius;    public Circle(double radius) {        this.radius = radius;}    @Override    public double area() {        return Math.PI * radius * radius;}}public class Rectangle extends Shape {    private double width;    private double height;    public Rectangle(double width, double height) {        this.width = width;        this.height = height;}    @Override    public double area() {        return width * height;}}

在主函数中,我们可以创建Shape类型的数组,并分别向其中添加Circle和Rectangle对象:

public static void main(String[] args) {    Shape[] shapes = new Shape[2];    shapes[0] = new Circle(5);    shapes[1] = new Rectangle(3, 4);    for (Shape shape : shapes) {        System.out.println("Area of " + shape.getClass().getSimpleName() + " is " + shape.area());}}

通过这个例子,我们可以看到Shape类定义了一个抽象方法area(),Circle类和Rectangle类分别重写了这个方法。在主函数中,我们创建了Shape类型的数组,并分别向其中添加Circle和Rectangle对象。在遍历数组时,我们调用了每个对象的area()方法,实际上执行的是子类中重写后的area()方法,这就是多态的体现。因为我们不知道数组中的元素到底是Circle对象还是Rectangle对象,所以需要在运行时动态地确定调用哪个方法,这就是运行时多态性或动态多态性。

上一篇下一篇

猜你喜欢

热点阅读