MST

星途 面试题库

面试题:TypeScript多态在接口中的应用

定义一个TypeScript接口`Shape`,包含计算面积的方法`getArea`。然后创建两个类`Circle`和`Rectangle`实现该接口,分别根据自身的属性计算面积。接着编写一个函数,接受`Shape`类型的参数并调用`getArea`方法,展示如何利用多态实现对不同形状面积的计算。要求在代码中明确体现类型约束和多态行为。
32.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 定义Shape接口
interface Shape {
    getArea(): number;
}

// Circle类实现Shape接口
class Circle implements Shape {
    constructor(private radius: number) {}
    getArea(): number {
        return Math.PI * this.radius * this.radius;
    }
}

// Rectangle类实现Shape接口
class Rectangle implements Shape {
    constructor(private width: number, private height: number) {}
    getArea(): number {
        return this.width * this.height;
    }
}

// 利用多态计算面积的函数
function calculateArea(shape: Shape): number {
    return shape.getArea();
}

// 使用示例
const circle = new Circle(5);
const rectangle = new Rectangle(4, 6);

console.log(`Circle area: ${calculateArea(circle)}`);
console.log(`Rectangle area: ${calculateArea(rectangle)}`);