// 定义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)}`);