Kế thừa đa cấp trong ví dụ Python W3schools

Trong python, Kế thừa đa cấp là một loại kế thừa được sử dụng để kế thừa cả các tính năng của lớp cơ sở và lớp dẫn xuất sang lớp dẫn xuất mới khi chúng ta kế thừa một lớp dẫn xuất từ ​​một lớp cơ sở và một lớp dẫn xuất khác từ lớp dẫn xuất trước đó cho đến bất kỳ mức độ nào của . Trong khi kế thừa các phương thức và thành viên của cả lớp cơ sở và lớp dẫn xuất sẽ được kế thừa cho lớp dẫn xuất mới. Bằng cách sử dụng tính kế thừa, chúng ta có thể đạt được khả năng sử dụng lại mã, mối quan hệ giữa các lớp. Nếu chúng ta có ba lớp A, B và C trong đó A là lớp cha (Cha), B là lớp con (con) và C là lớp con của B (Cháu)

Gói phát triển phần mềm tất cả trong một(hơn 600 khóa học, hơn 50 dự án)

Kế thừa đa cấp trong ví dụ Python W3schools
Kế thừa đa cấp trong ví dụ Python W3schools
Kế thừa đa cấp trong ví dụ Python W3schools
Kế thừa đa cấp trong ví dụ Python W3schools

Kế thừa đa cấp trong ví dụ Python W3schools
Kế thừa đa cấp trong ví dụ Python W3schools
Kế thừa đa cấp trong ví dụ Python W3schools
Kế thừa đa cấp trong ví dụ Python W3schools

Giá
Xem khóa học

600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 (83.722 xếp hạng)

Cú pháp kế thừa đa cấp

Giả sử chúng ta có ba lớp có tên là cơ sở, dẫn xuất1 và dẫn xuất2. Lớp cơ sở có các thành viên và chức năng như sau

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác

class base:
    //member of base class
   // functions of base class
    Pass
class derived1(base):
   // members of derived1 class + base class
  // functions of derived1 class + base class
   pass
class derived2(derived1):
   // members of derived2 class + derived1 class + base class
  // functions of derived2 class + derived1 class + base class
   Pass

Trong ví dụ lớp trên, chúng ta có thể thấy rằng lớp cơ sở là lớp cơ sở và lớp dẫn xuất được kế thừa từ lớp cơ sở và lớp dẫn xuất2 được kế thừa từ lớp dẫn xuất1

Kế thừa đa cấp hoạt động như thế nào trong Python?

Trong python, kế thừa đa cấp hoạt động như sau. Hãy để chúng tôi giải thích kế thừa đa cấp với một ví dụ như dưới đây

class Parent:
   def __init__(self,name):
     self.name = name
   def getName(self):
     return self.name
class Child(Parent):
   def __init__(self,name,age):
     Parent.__init__(self,name)
     self.age = age
   def getAge(self):
     return self.age
class Grandchild(Child):
   def __init__(self,name,age,location):
     Child.__init__(self,name,age)
     self.location=location
   def getLocation(self):
     return self.location
gc = Grandchild("Srinivas",24,"Hyderabad")
print(gc.getName(), gc.getAge(), gc.getLocation())

Trong ví dụ kế thừa đa cấp ở trên, chúng ta có ba lớp được đặt tên là Cha, Con và Cháu. Lớp cha là lớp cơ sở có hàm tạo đang gán tên và hàm getName(). Chúng ta có thể lấy tên của cháu bằng chức năng này. Lớp dẫn xuất Con được kế thừa từ lớp cơ sở Cha mẹ với các thành viên của nó như một hàm tạo đang sử dụng hàm tạo của lớp cơ sở để gán tên và gán tuổi ở đây. Nó có chức năng getAge() để lấy tuổi của những đứa trẻ đã cho. Bây giờ lớp này có các thành viên có hàm getName(), getAge() và hàm tạo của nó. Lớp dẫn xuất mới Grandchild được kế thừa từ lớp dẫn xuất trước đó Child. Lớp dẫn xuất mới có các tính năng của cả lớp cơ sở Cha và lớp dẫn xuất Hàm con và các thành viên như các tính năng của nó. Lớp mới dẫn xuất có một hàm tạo đang sử dụng hàm tạo của lớp trước đó và hàm getLocation() để lấy vị trí của phần tử con đã cho

Trong python, kế thừa đa cấp, nếu nó cần tìm kiếm một hàm cụ thể, một biến thành viên thì đầu tiên nó tìm kiếm trong lớp hiện tại, sau đó trong lớp cha của lớp hiện tại và cuối cùng, lớp cơ sở như thứ tự này sẽ được tuân theo dựa trên . Kiểu giải quyết thứ tự tìm kiếm lớp này được gọi là MRO (Thứ tự giải quyết phương pháp) trong python. Nó sẽ duy trì thứ tự ưu tiên cục bộ và duy trì thứ tự giải quyết của các thành viên trong lớp. Kế thừa đa cấp được sử dụng để đạt được khả năng sử dụng lại mã, duy trì mối quan hệ giữa các lớp để đạt được lập trình hướng đối tượng

Trong chương trình trên, chúng ta đã tạo một đối tượng gc thuộc lớp Cháu với các tham số là tên, tuổi, vị trí và kết quả của chương trình trên như sau

đầu ra

Kế thừa đa cấp trong ví dụ Python W3schools

Ví dụ về kế thừa đa cấp trong Python

Chúng ta hãy xem ví dụ khác nhau được đề cập dưới đây

Chúng ta có thể đạt được kế thừa đa cấp bằng cách sử dụng hàm super() trong python. Hàm super() cho phép tham chiếu đến lớp cha của lớp hiện tại một cách rõ ràng vì trong các lớp con kế thừa được kế thừa từ lớp cha. Các hàm super() cho phép chúng ta thực hiện kế thừa đơn, đa, đa cấp một cách dễ dàng

Hãy cho chúng tôi xem một ví dụ về kế thừa đa cấp sử dụng super()

class xyz:
    def__init__(self):
      print("hey, I am initialized , xyz")
    def sub_xyz(self,b):
      print("Printing from class xyz:",b)
class xyz1(xyz):
   def __init__(self):
     print("hey, I am initialized, xyz1")
     super().__init__()
   def sub_xyz(self,b):
     print("Printing from class xyz1:", b)
     super().sub_xyz(b+1)
class xyz2(xyz1):
   def __init__(self):
     print("hey, I am initialized, xyz2")
     super().__init__()
   def sub_xyz(self,b):
     print("Printing from class xyz2:",b)
     super().sub_xyz(b+1)
if __name__ == '__main__':
   ob =xyz2()
   ob.sub_xyz(10)

Trong ví dụ trên về kế thừa đa cấp sử dụng hàm super(), chúng ta đã tạo một đối tượng ob của lớp dẫn xuất xyz2() và gọi hàm sub_xyz() từ lớp xyz2 kế thừa cả hai lớp xyz, xyz1. Trong kết quả của ví dụ trên, bạn có thể rõ ràng thứ tự mà python đang gọi các lớp và cách nó giải quyết mối quan hệ giữa các lớp

Trong ví dụ trên, chúng ta có ba lớp xyz, xyz1 và xyz2. Lớp xyz có hàm tạo với câu lệnh in và hàm sub_xyz() với hàm in. Tương tự, lớp xyz1 được kế thừa từ lớp xyz có hàm tạo trong đó câu lệnh in và hàm super với hàm tạo khởi tạo, hàm sub_xyz() với tham số b với câu lệnh in và super() gọi hàm con sub_xyz với . Tương tự, lớp xyz2 được dẫn xuất từ ​​lớp xyz1 với tất cả các hàm thành viên tương tự như lớp dẫn xuất trước đó xyz1 với một hàm tạo, siêu hàm với một hàm tạo và một hàm sub_xyz() với hàm super() gọi sub_xyz() với một tham số

Chúng ta đã tạo một đối tượng ob của lớp dẫn xuất cuối cùng là ab2 và gọi hàm sub_xyz() với tham số là 10 để gọi các hàm từ lớp dẫn xuất đến lớp cơ sở theo thứ tự từ dưới lên

Đầu ra của chương trình trên là

Kế thừa đa cấp trong ví dụ Python W3schools

Phần kết luận

Cuối cùng, đó là tất cả về kế thừa đa cấp trong python. Chúng ta đã thảo luận về kế thừa đa cấp là gì, cú pháp của nó, cách thức hoạt động của tính kế thừa đa cấp trong python và các ví dụ về kế thừa đa cấp bằng siêu hàm. Tôi hy vọng sau khi đọc bài viết này, bạn sẽ có thêm một số kiến ​​thức so với những gì bạn đã có và hiểu rõ hơn về kế thừa đa cấp và các kịch bản khi sử dụng

Bài viết được đề xuất

Đây là hướng dẫn về Kế thừa đa cấp trong Python. Ở đây chúng tôi thảo luận về phần giới thiệu về Kế thừa đa cấp trong Python cùng với các ví dụ tương ứng và hoạt động. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Kế thừa đa cấp trong Python với ví dụ là gì?

Trong python, Kế thừa đa cấp là một loại kế thừa được sử dụng để kế thừa cả các tính năng của lớp cơ sở và lớp dẫn xuất sang lớp dẫn xuất mới khi .

Kế thừa đa cấp là gì, hãy cho một ví dụ?

Kế thừa đa cấp trong java xảy ra khi một lớp mở rộng một lớp mở rộng một lớp khác . Đây được gọi là Kế thừa đa cấp trong java. Ví dụ: lớp C mở rộng lớp B và lớp B mở rộng lớp A.

Kế thừa đa cấp có được phép trong Python không?

Có, Python hỗ trợ đa kế thừa . Giống như C++, một lớp có thể được bắt nguồn từ nhiều lớp cơ sở trong Python. Điều này được gọi là Đa kế thừa.

Đa kế thừa trong Python w3schools là gì?

Tính chất có được tất cả các thuộc tính và hành vi của đối tượng cha bởi một đối tượng được gọi là tính kế thừa của Python. Python tạo điều kiện kế thừa một lớp dẫn xuất từ ​​nhiều hơn một lớp cơ sở, còn được gọi là đa kế thừa trong Python.