// 抽象类Shape
abstract class Shape {
// 抽象方法calculateArea
abstract calculateArea(): number;
}
// 接口Drawable
interface Drawable {
draw(): void;
}
// Circle类继承自Shape并实现Drawable接口
class Circle extends Shape implements Drawable {
constructor(private radius: number) {
super();
}
// 实现calculateArea方法
calculateArea(): number {
return Math.PI * this.radius * this.radius;
}
// 实现draw方法
draw(): void {
console.log(`绘制一个半径为 ${this.radius} 的圆`);
}
}
// Rectangle类继承自Shape并实现Drawable接口
class Rectangle extends Shape implements Drawable {
constructor(private width: number, private height: number) {
super();
}
// 实现calculateArea方法
calculateArea(): number {
return this.width * this.height;
}
// 实现draw方法
draw(): void {
console.log(`绘制一个宽为 ${this.width},高为 ${this.height} 的矩形`);
}
}