Lớp cha có thể sử dụng các phương thức từ lớp con python không?

Như bạn có thể biết, việc tạo một lớp đầy đủ chức năng trong ngôn ngữ lập trình hướng đối tượng rất tốn thời gian vì các lớp thực thực hiện rất nhiều nhiệm vụ phức tạp.

Trong Python, bạn có thể lấy các tính năng bạn muốn từ một lớp hiện có [cha mẹ] để tạo một lớp mới [con]. Tính năng Python này được gọi là tính kế thừa

Bằng cách kế thừa, bạn có thể

  • có được các tính năng của một lớp cha mẹ,
  • thay đổi các tính năng mà bạn không cần,
  • thêm các tính năng mới cho lớp con của bạn. [lớp dẫn xuất hoặc lớp con]

Vì bạn đang sử dụng một lớp học thử nghiệm đã được sử dụng trước, nên bạn không cần phải nỗ lực nhiều như vậy cho lớp học mới của mình. Lớp con kế thừa các thuộc tính và chức năng của lớp cha

Nếu chúng ta có một số lớp tương tự, chúng ta có thể định nghĩa các chức năng chung của chúng trong một lớp và định nghĩa các lớp con của lớp cha này và triển khai các chức năng cụ thể ở đó

Ba chuyên gia dữ liệu

Hình ảnh của tác giả

Chúng tôi có 3 chuyên gia dữ liệu. Tất cả họ đều biết toán học và thống kê, SQL và ngôn ngữ lập trình như Python, R, Java, v.v.

class Data_Scientist:
def __init__[self, name, SQL]:
self.name = name
self.SQL = SQL
def knows_maths_stats[self]:
return True
def knows_programming[self]:
return True

class Data_Analyst:
def __init__[self, name, SQL]:
self.name = name
self.SQL = SQL
def knows_maths_stats[self]:
return True
def knows_programming[self]:
return True

class Data_Engineer:
def __init__[self, name]:
self.name = name
self.SQL = SQL
def knows_maths_stats[self]:
return True
def knows_programming[self]:
return True

Thay vì viết đi viết lại cùng một lớp, chúng ta có thể định nghĩa một lớp cha “Data_Professional” và 3 lớp con của lớp Data_Professional. Data_Analyst, Data_Scientist và Data_Engineer

lớp phụ huynh

Lớp mà chúng ta kế thừa được gọi là Lớp cha, Lớp cha hoặc Lớp cơ sở

class Data_Professional:
def __init__[self, name, SQL]:
self.name = name
self.SQL = SQL
def knows_maths_stats[self]:
return True
def knows_programming[self]:
return True
Lớp học dành cho trẻ em

Lớp mới được tạo ra bằng cách kế thừa các chức năng của lớp cha được gọi là Lớp con, Lớp dẫn xuất hoặc Lớp con. Hàm __init__[] của lớp con ghi đè hàm __init__[] của lớp cha

Truy cập các biến lớp cha từ lớp con

Mary Smith là một nhà khoa học dữ liệu biết toán học và thống kê, SQL và Python

1. Định nghĩa lớp con

class Data_Scientist[Data_Professional]:
def __init__[self, name, SQL]:
super[].__init__[name, SQL]

2. Khởi tạo đối tượng dt_sci

dt_sci = Data_Scientist[“Mary Smith”, 9]

3. In các tính năng của dt_sci

print[dt_sci.name, 
dt_sci.SQL,
dt_sci.knows_maths_stats[],
dt_sci.knows_programming[]]
Mary Smith 9 True True

Một lớp trống có các thuộc tính của lớp cha của nó

class Data_Engineer[Data_Professional]:
pass
dt_en = Data_Engineer[“Hyun-mi Tokko”, 9]print[dt_en.name,
dt_en.SQL,
dt_en.knows_maths_stats[],
dt_en.knows_programming[]]
Hyun-mi Tokko 9 True True

Ghi đè các lớp

class Data_Analyst[Data_Professional]:
def __init__[self, name, SQL]:
super[].__init__[name, SQL]
def knows_programming[self]:
return False
dt_an = Data_Analyst[“Brinda Kumar”, 7]print[dt_an.name,
dt_an.SQL,
dt_an.knows_maths_stats[],
dt_an.knows_programming[]]
Brinda Kumar 7 True False
Kiểm tra các lớp con và trường hợp

issubclass[] Phương thức

Hàm dựng sẵn hỏi xem một lớp có phải là lớp con của lớp khác không

print[issubclass[Data_Analyst, Data_Professional]]Trueprint[issubclass[Data_Professional, Data_Analyst]]False

Phương thức isinstance[]

Hàm dựng sẵn hỏi xem một đối tượng có phải là một thể hiện của một lớp không

print[isinstance[dt_an, Data_Analyst]]Trueprint[isinstance[dt_en, Data_Analyst]]False
Các Loại Thừa Kế

Có mấy kiểu thừa kế. Đó là kế thừa đơn, đa kế thừa, kế thừa đa cấp, kế thừa phân cấp và kế thừa hỗn hợp. Bốn cái đầu tiên trong số chúng được minh họa dưới đây. Thừa kế lai là sự kết hợp của 4 kiểu thừa kế trên. Ví dụ trên là một ví dụ về thừa kế lai

Hình ảnh của tác giả Ưu điểm của thừa kế

Kế thừa cung cấp rất nhiều lợi thế. Bằng cách sử dụng các lớp cha và con,

  • chúng tôi có thể viết mã linh hoạt, có thể tái sử dụng nhiều hơn, dễ dàng mở rộng bởi các nhà phát triển mới,
  • chúng ta có thể viết mã có tổ chức, có cấu trúc, dễ đọc hơn giúp chúng ta gỡ lỗi và xác định lỗi dễ dàng,
  • chúng ta có thể giảm sự lặp lại và sao chép mã, chúng ta có thể đặt tất cả các thuộc tính và chức năng phổ biến vào lớp cha và truy cập chúng bởi lớp con
Phần kết luận

Kế thừa là một trong những khái niệm quan trọng nhất trong Lập trình hướng đối tượng [OOP]. Nó cho phép chúng ta tạo các lớp mới dựa trên một hoặc nhiều lớp hiện có. Chúng ta sẽ thảo luận về đa hình, đóng gói và trừu tượng hóa trong các blog tiếp theo

Liên hệ với tôi

Nếu bạn muốn được cập nhật các bài viết mới nhất của tôi, hãy theo dõi tôi trên Medium. Bạn có thể kết nối với tôi trên LinkedIn và gửi email cho tôi theo địa chỉ seymatas@gmail. com

Lớp cha có thể sử dụng phương thức của lớp con không?

Nhưng vì biến tham chiếu của lớp cha trỏ đến các đối tượng của lớp con. Vì vậy, có thể truy cập các thuộc tính của lớp con theo đối tượng của lớp cha nếu chỉ cho phép truyền xuống hoặc có thể .

Lớp con có thể truy cập các phương thức dữ liệu riêng tư của lớp cha không?

Tính kế thừa có nghĩa là một đối tượng của lớp con tự động bao gồm các trường đối tượng và phương thức được định nghĩa trong lớp cha. Tuy nhiên, nếu các trường được kế thừa là riêng tư, thì chúng phải là riêng tư, lớp con không thể truy cập trực tiếp vào các trường được kế thừa bằng cách sử dụng ký hiệu dấu chấm .

Chúng ta có thể gọi phương thức của lớp cha với đối tượng của lớp con mà không ghi đè không?

Có vẻ như câu hỏi của bạn không liên quan đến việc biến là một đối tượng toàn cục, nhưng có, bạn có thể gọi phương thức của lớp bậc trên mà không cần ghi đè .

Nếu lớp cha và lớp con có cùng một phương thức thì sao?

Nếu lớp con [lớp con] có cùng một phương thức như được khai báo trong lớp cha, thì nó được gọi là ghi đè phương thức trong Java. Nói cách khác, nếu một lớp con cung cấp cách triển khai cụ thể của phương thức đã được khai báo bởi một trong các lớp cha của nó, thì nó được gọi là ghi đè phương thức.

Chủ Đề