Menu
CoddyTech

Ghi đè và phương thức diện tích

Thuộc phần Lập trình hướng đối tượng trong hành trình JavaScript của Coddy. Bài học 41 trên 56.

challenge icon

Thử thách

Cải thiện lớp Circle bằng cách ghi đè phương thức describe() và thêm phương thức mới calculateArea().

Nhiệm vụ của bạn:

  1. Ghi đè phương thức describe() để trả về ${super.describe()} (Circle with radius ${this.radius}).

    Ví dụ: "A blue shape (Circle with radius 10)"

  2. Thêm phương thức calculateArea() để:
    • Tính diện tích bằng công thức: Math.PI * this.radius * this.radius
    • Trả về diện tích đã tính, không cần console.log

      *Đây là phương thức riêng của Circle, không có trong lớp Shape cha

Tự làm thử

import { Shape } from './Shape.js';
import { Circle } from './Circle.js';

// Kiểm thử
const basicShape = new Shape('red');
console.log(basicShape.describe()); // "A red shape"

const myCircle = new Circle('blue', 10);
console.log(myCircle.describe()); // Đầu ra cần là: "A blue shape (Circle with radius 10)"
console.log(myCircle.calculateArea()); // Đầu ra cần là: "314.1592653589793"

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch JavaScript online