×

Làm Thế Nào Để Kế Thừa Từ Một Class Khác Trong JavaScript?

Trong JavaScript, việc kế thừa từ một class khác có thể được thực hiện bằng cách sử dụng từ khóa extends. Kế thừa cho phép một class con (subclass) kế thừa các thuộc tính và phương thức từ một class cha (superclass). Đây là một tính năng quan trọng trong lập trình hướng đối tượng giúp tái sử dụng mã và mở rộng chức năng.

Cú Pháp Kế Thừa Trong JavaScript

Ví dụ cơ bản về kế thừa:

// Class cha
class Animal {
    constructor(name) {
        this.name = name;
    }

    speak() {
        console.log(`${this.name} makes a noise.`);
    }
}

// Class con kế thừa từ class cha
class Dog extends Animal {
    constructor(name, breed) {
        super(name); // Gọi constructor của class cha
        this.breed = breed;
    }

    speak() {
        console.log(`${this.name} barks.`);
    }

    info() {
        console.log(`${this.name} is a ${this.breed}.`);
    }
}

// Tạo đối tượng từ class con
const dog = new Dog('Rex', 'German Shepherd');
dog.speak(); // Rex barks.
dog.info(); // Rex is a German Shepherd.

Giải Thích Chi Tiết:

  1. Khai báo class cha (Animal):

    • Class Animal có một constructor nhận tham số name và một phương thức speak để in ra một thông báo.
  2. Khai báo class con (Dog) kế thừa từ class cha:

    • Sử dụng từ khóa extends để chỉ định rằng class Dog kế thừa từ class Animal.
    • Constructor của class con gọi super(name) để kế thừa thuộc tính name từ class cha. super được sử dụng để gọi constructor và các phương thức của class cha.
    • Class con có thể định nghĩa thêm các thuộc tính và phương thức riêng như breedinfo.
  3. Tạo đối tượng từ class con:

    • Đối tượng dog được tạo từ class Dog với các tham số namebreed.
    • Các phương thức speakinfo có thể được gọi từ đối tượng dog.

Ghi Đè Phương Thức (Method Overriding):

Trong ví dụ trên, phương thức speak trong class Dog đã ghi đè phương thức speak của class Animal. Ghi đè phương thức cho phép class con cung cấp triển khai riêng của một phương thức đã được định nghĩa trong class cha.

Sử Dụng super Trong Các Phương Thức Khác:

Ngoài constructor, super cũng có thể được sử dụng trong các phương thức khác để gọi các phương thức của class cha.

Ví dụ:

class Animal {
    speak() {
        console.log('Animal makes a noise.');
    }
}

class Dog extends Animal {
    speak() {
        super.speak(); // Gọi phương thức speak của class cha
        console.log('Dog barks.');
    }
}

const dog = new Dog();
dog.speak();
// Output:
// Animal makes a noise.
// Dog barks.

Tổng Kết:

  • Sử dụng từ khóa extends để kế thừa từ một class khác.
  • Sử dụng từ khóa super để gọi constructor và các phương thức của class cha.
  • Ghi đè phương thức cho phép class con cung cấp triển khai riêng cho các phương thức của class cha.

Comments