Menu
CoddyTech

Kế thừa cơ bản

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

Tính kế thừa cho phép một lớp kế thừa các thuộc tính và phương thức từ lớp khác, tạo nên mối quan hệ cha con.

Đây là ví dụ về một lớp cha:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

Tạo một lớp con kế thừa từ lớp cha:

class Dog(Animal):
    pass  # Kế thừa mọi thứ từ Animal

Cú pháp (syntax) class Dog(Animal): có nghĩa là Dog kế thừa từ Animal. Đặt tên lớp cha trong dấu ngoặc đơn.

Tạo đối tượng từ cả hai lớp:

generic_animal = Animal("Creature")
buddy = Dog("Buddy")

Sử dụng các phương thức được kế thừa:

generic_animal.info()
buddy.info()

Đầu ra:

I am Creature, an animal
I am Buddy, an animal

Mặc dù Dog không định nghĩa __init__ hay info, Dog vẫn tự động kế thừa chúng từ Animal.

Bạn có thể thêm phương thức mới vào lớp con:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # Phương thức kế thừa
buddy.bark()  # Phương thức mới

Đầu ra:

I am Buddy, an animal
Buddy says Woof!

Điểm chính: Lớp con kế thừa tất cả thuộc tính (property/attribute) và phương thức (method) từ lớp cha. Dùng cú pháp class Child(Parent): để tạo tính kế thừa (inheritance). Cách này giúp bạn tái sử dụng code và tạo hệ thống phân cấp lớp hợp lý.

challenge icon

Thử thách

Trung bình
  • vehicle.py: Chứa lớp cha Vehicle
  • car.py: Chứa lớp Car kế thừa từ Vehicle
  • driver.py: Tệp chính để kiểm tra phần triển khai của bạn

Mỗi tệp đều có chú thích TODO chi tiết hướng dẫn bạn triển khai. Bạn cần:

  • Hoàn thiện lớp Vehicle với các thuộc tính make và model
  • Triển khai kế thừa lớp phù hợp trong lớp Car
  • Thiết lập các câu lệnh import chính xác giữa các tệp
  • Tạo và kiểm tra các đối tượng trong tệp driver

Hãy làm theo các chú thích TODO cẩn thận vì chúng hướng dẫn từng bước để tìm lời giải.

Tự làm thử

# TODO: Nhập lớp Vehicle từ vehicle.py
# TODO: Nhập lớp Car từ car.py

# TODO: Tạo đối tượng Vehicle với make là "Toyota" và model là "Corolla"
vehicle = None

# TODO: Tạo đối tượng Car với make là "Honda" và model là "Civic"
car = None

# TODO: Gọi phương thức display_info() của đối tượng vehicle
# Đầu ra dự kiến: "Vehicle: Toyota Corolla"

# TODO: Gọi phương thức display_info() của đối tượng car
# Đầu ra dự kiến: "Vehicle: Honda Civic"
# Note: Car kế thừa display_info từ Vehicle mà không thay đổi gì
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

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 Python online