Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kế thừa (Inheritance) trong Python

Trong bài viết này, chúng ta sẽ tìm hiểu về kế thừa và mở rộng lớp trong Python 3.x hoặc các phiên bản trước đó.

Kế thừa đại diện tốt cho các mối quan hệ thực tế, cung cấp khả năng tái sử dụng & hỗnh tính bắc cầu. Nó cung cấp thời gian phát triển nhanh hơn, bảo trì dễ dàng hơn và dễ dàng mở rộng.

Kế thừa được phân loại rộng rãi thành 5 loại:

  • Đơn (Single)
  • Đa (Multiple)
  • Phân cấp (Hierarchical)
  • Đa cấp (Multi-level)
  • Kết hợp (Hybrid)

Kế thừa (Inheritance) trong Python

Như hình trên cho thấy, kế thừa là quá trình mà trong đó chúng ta cố gắng truy cập các tính năng của các lớp khác mà không cần thực sự tạo đối tượng của lớp cha.

Ở đây chúng ta sẽ tìm hiểu về triển khai của kế thừa đơn và kế thừa phân cấp.

Kế thừa đơn (Single inheritance)

Ví dụ

# Lớp cha
class Student():
    # Constructor của lớp cha
    def __init__(self, name, enrollnumber):
        self.name = name
        self.enrollnumber = enrollnumber
    def display(self):
        print(self.name)
        print(self.enrollnumber)

# Lớp con
class College(Student):
    def __init__(self, name, enrollnumber, admnyear, branch):
        self.admnyear = admnyear
        self.branch = branch
        # Gọi __init__ của lớp cha
        Student.__init__(self, name, enrollnumber)

# Tạo đối tượng cho lớp cơ sở/đã dẫn xuất
obj = College('Rohit', 42414802718, 2018, "CSE")
obj.display()

Kết quả

Rohit
42414802718

Kế thừa đa (Multiple inheritance)

Ví dụ

# Lớp cha
class Student():
    def __init__(self, name, enrollnumber):
        self.name = name
        self.enrollnumber = enrollnumber
    def display(self):
        print(self.name)
        print(self.enrollnumber)

# Lớp con
class College(Student):
    def __init__(self, name, enrollnumber, admnyear, branch):
        self.admnyear = admnyear
        self.branch = branch
        Student.__init__(self, name, enrollnumber)

# Lớp con
class University(Student):
    def __init__(self, name, enrollnumber, refno, branch):
        self.refno = refno
        self.branch = branch
        Student.__init__(self, name, enrollnumber)

# Tạo đối tượng cho lớp cơ sở/đã dẫn xuất
obj_1 = College('Rohit', 42414802718, 2018, "CSE")
obj_1.display()
obj_2 = University('Rohit', 42414802718, "st2018", "CSE")
obj_2.display()

Kết quả

Rohit
42414802718
Rohit
42414802718

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về Kế thừa trong Python rộng rãi là kế thừa đơn và kế thừa phân cấp.