MST

星途 面试题库

面试题:TypeScript类的抽象与接口结合应用

定义一个抽象类`Shape`,包含抽象方法`calculateArea`。再定义一个接口`Drawable`,包含`draw`方法。然后创建两个类`Circle`和`Rectangle`,`Circle`类继承自`Shape`并实现`Drawable`接口,`Rectangle`类同样继承自`Shape`并实现`Drawable`接口。实现`calculateArea`方法用于计算图形面积,`draw`方法用于输出图形的绘制信息。请完整编写TypeScript代码实现上述要求。
15.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
abstract class Shape {
    abstract calculateArea(): number;
}

interface Drawable {
    draw(): void;
}

class Circle extends Shape implements Drawable {
    constructor(private radius: number) {
        super();
    }

    calculateArea(): number {
        return Math.PI * this.radius * this.radius;
    }

    draw(): void {
        console.log(`绘制一个半径为 ${this.radius} 的圆`);
    }
}

class Rectangle extends Shape implements Drawable {
    constructor(private width: number, private height: number) {
        super();
    }

    calculateArea(): number {
        return this.width * this.height;
    }

    draw(): void {
        console.log(`绘制一个宽为 ${this.width},高为 ${this.height} 的矩形`);
    }
}