MST
星途 面试题库

面试题:TypeScript类的抽象与接口实现

定义一个抽象类`Shape`,包含抽象方法`calculateArea`。然后定义`Circle`和`Rectangle`类继承自`Shape`并实现`calculateArea`方法。同时,创建一个接口`Drawable`,包含`draw`方法,让`Circle`和`Rectangle`类也实现该接口。请编写完整的TypeScript代码实现上述要求。
46.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 抽象类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} 的矩形`);
    }
}