MST

星途 面试题库

面试题:Java中接口多态性的实现机制及示例

请详细阐述Java如何实现接口的多态性,并通过一个完整的代码示例展示。要求示例中至少包含两个实现了同一接口的不同类,以及在主函数中体现多态性的调用。
34.9万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 接口多态性概念
    • 在Java中,接口多态性是指一个接口可以有多个不同的实现类,程序可以根据对象的实际类型来调用相应实现类的方法。这是通过接口类型的变量来引用不同实现类的对象,从而在运行时决定调用哪个实现类的方法。
  2. 代码示例
// 定义接口
interface Shape {
    double calculateArea();
}

// 实现接口的第一个类
class Circle implements Shape {
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    @Override
    public double calculateArea() {
        return Math.PI * radius * radius;
    }
}

// 实现接口的第二个类
class Rectangle implements Shape {
    private double width;
    private double height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    @Override
    public double calculateArea() {
        return width * height;
    }
}

public class PolymorphismDemo {
    public static void main(String[] args) {
        // 接口类型变量引用Circle对象
        Shape circle = new Circle(5.0);
        // 接口类型变量引用Rectangle对象
        Shape rectangle = new Rectangle(4.0, 6.0);

        // 调用各自实现类的calculateArea方法,体现多态性
        System.out.println("Circle area: " + circle.calculateArea());
        System.out.println("Rectangle area: " + rectangle.calculateArea());
    }
}

在上述代码中,Shape是一个接口,CircleRectangle是实现了Shape接口的两个不同类。在main方法中,通过Shape接口类型的变量分别引用CircleRectangle类的对象,并调用calculateArea方法,这就是接口多态性的体现。根据对象实际类型的不同,调用的是相应实现类的calculateArea方法。