Quá tải phương thức trong python w3schools

Ghi đè phương thức trong Python có nghĩa là tạo ra hai phương thức có cùng tên nhưng khác nhau về logic lập trình. Khái niệm Method overriding cho phép chúng ta thay đổi hoặc override chức năng của Parent Class trong Child Class

Để ghi đè một phương thức hoặc thực hiện Ghi đè phương thức trong Ngôn ngữ lập trình Python, bạn phải đáp ứng một số điều kiện nhất định và đó là.

  • Bạn không thể ghi đè một phương thức trong cùng một lớp. Điều đó có nghĩa là bạn phải làm điều đó trong lớp con bằng cách sử dụng khái niệm Kế thừa
  • Để ghi đè phương thức của Lớp cha, bạn phải tạo một hàm trong Lớp con có cùng tên và cùng số lượng tham số

Ví dụ: nếu bạn có hàm tính Mức tăng lương cho tất cả nhân viên trong một Tổ chức. Nhưng các bộ phận hoặc người cụ thể nhận được một tỷ lệ phần trăm khác nhau. Trong trường hợp này, bạn có thể ghi đè lên phương thức hiện có trong lớp Department và viết logic của bạn

Trong phần này, chúng tôi thảo luận về cách thực hiện Ghi đè phương thức bằng một ví dụ

Ví dụ ghi đè phương thức Python

Trong ví dụ này, chúng tôi đã tạo một lớp nhân viên, lớp này chứa hàm thông báo in thông báo. Tiếp theo, chúng tôi đã tạo một bộ phận kế thừa từ lớp Nhân viên. Trong phần này, chúng tôi đã tạo một chức năng có cùng tên thông báo với một thông báo in khác.

Đây là một minh chứng đơn giản về Ghi đè phương thức Python. Ở đây, chúng tôi chỉ ghi đè thông báo. Tiếp theo, chúng tôi đã tạo một Đối tượng cho lớp Nhân viên và Bộ phận và gọi chức năng thông báo đó

 
class Employee:
      
    def message(self):
        print('This message is from Emp')
  
class Department(Employee):
  
    def message(self):
        print('This Department is inherited from Emp')
  
emp = Employee()
emp.message()
  
print('------------')
dept = Department()
dept.message()
This message is from Emp
------------
This Department is inherited from Emp

Như bạn có thể thấy, đối tượng emp đang in một chuỗi từ hàm Thông báo nhân viên. Trong khi nợ. message() là bài kiểm tra in từ Bộ

Trong ví dụ về Ghi đè phương thức này, chúng tôi đã tạo thêm một lớp được kế thừa từ Nhân viên. Tiếp theo, chúng tôi cũng đang ghi đè chức năng thông báo từ lớp Bán hàng này. Vui lòng tham khảo ví dụ lớp

class Employee:
      
    def message(self):
        print('This message is from Employee ')
  
class Department(Employee):
  
    def message(self):
        print('This Department inherited from Employee')
 

class Sales(Employee):
  
    def message(self):
        print('This Sales is also inherited from Employee')
         
emp = Employee()
emp.message()
  
print('------------')
dept = Department()
dept.message()
 

print('------------')
sl = Sales()
sl.message()
This message is from Employee 
------------
This Department inherited from Employee
------------
This Sales is also inherited from Employee

Ghi đè phương thức Python trong nhiều kế thừa

Ví dụ Python này cho thấy cách thực hiện nạp chồng phương thức trong nhiều tình huống kế thừa

Tham khảo Kế thừa trong Python

class Employee:
      
    def message(self):
        print('This message is from Employee')
  
class Department(Employee):
  
    def message(self):
        print('This Department is inherited from Employee')
 
class Sales(Department):
  
    def message(self):
        print('This Sales is inherited from Employee')
         
emp = Employee()
emp.message()
  
print('------------')
dept = Department()
dept.message()
 
print('------------')
sl = Sales()
sl.message()

Ghi đè phương thức trong đầu ra đa kế thừa

This message is from Employee 
------------
This Department is inherited from Employee
------------
This Sales is inherited from Employee

với lập luận

Cho đến bây giờ, chúng tôi chỉ thay đổi câu lệnh in. Ý tôi là, ghi đè các chức năng mà không có bất kỳ đối số nào. Trong ví dụ này, chúng ta đã tạo một hàm add với hai đối số trong lớp cha và ba đối số trong lớp con

Đa hình là một khái niệm rất quan trọng trong lập trình. Nó đề cập đến việc sử dụng một thực thể kiểu đơn (phương thức, toán tử hoặc đối tượng) để biểu diễn các kiểu khác nhau trong các tình huống khác nhau

Hãy lấy một ví dụ

ví dụ 1. Đa hình trong toán tử bổ sung

Chúng tôi biết rằng toán tử

class Employee:
      
    def message(self):
        print('This message is from Employee ')
  
class Department(Employee):
  
    def message(self):
        print('This Department inherited from Employee')
 

class Sales(Employee):
  
    def message(self):
        print('This Sales is also inherited from Employee')
         
emp = Employee()
emp.message()
  
print('------------')
dept = Department()
dept.message()
 

print('------------')
sl = Sales()
sl.message()
4 được sử dụng rộng rãi trong các chương trình Python. Nhưng, nó không có một cách sử dụng duy nhất

Đối với kiểu dữ liệu số nguyên, toán tử

class Employee:
      
    def message(self):
        print('This message is from Employee ')
  
class Department(Employee):
  
    def message(self):
        print('This Department inherited from Employee')
 

class Sales(Employee):
  
    def message(self):
        print('This Sales is also inherited from Employee')
         
emp = Employee()
emp.message()
  
print('------------')
dept = Department()
dept.message()
 

print('------------')
sl = Sales()
sl.message()
4 được sử dụng để thực hiện phép toán cộng số học

num1 = 1
num2 = 2
print(num1+num2)

Do đó, chương trình trên xuất ra 3


Tương tự, đối với kiểu dữ liệu chuỗi, toán tử

class Employee:
      
    def message(self):
        print('This message is from Employee ')
  
class Department(Employee):
  
    def message(self):
        print('This Department inherited from Employee')
 

class Sales(Employee):
  
    def message(self):
        print('This Sales is also inherited from Employee')
         
emp = Employee()
emp.message()
  
print('------------')
dept = Department()
dept.message()
 

print('------------')
sl = Sales()
sl.message()
4 được sử dụng để thực hiện phép nối

str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)

Kết quả là chương trình trên xuất ra Lập trình Python

Ở đây, chúng ta có thể thấy rằng một toán tử duy nhất

class Employee:
      
    def message(self):
        print('This message is from Employee ')
  
class Department(Employee):
  
    def message(self):
        print('This Department inherited from Employee')
 

class Sales(Employee):
  
    def message(self):
        print('This Sales is also inherited from Employee')
         
emp = Employee()
emp.message()
  
print('------------')
dept = Department()
dept.message()
 

print('------------')
sl = Sales()
sl.message()
4 đã được sử dụng để thực hiện các thao tác khác nhau cho các loại dữ liệu riêng biệt. Đây là một trong những trường hợp đa hình đơn giản nhất trong Python


Đa hình hàm trong Python

Có một số hàm trong Python tương thích để chạy với nhiều kiểu dữ liệu

Một chức năng như vậy là chức năng

str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
2. Nó có thể chạy với nhiều kiểu dữ liệu trong Python. Hãy xem xét một số trường hợp sử dụng ví dụ của chức năng

ví dụ 2. Hàm len() đa hình

print(len("Programiz"))
print(len(["Python", "Java", "C"]))
print(len({"Name": "John", "Address": "Nepal"}))

đầu ra

This message is from Emp
------------
This Department is inherited from Emp
0

Ở đây, chúng ta có thể thấy nhiều kiểu dữ liệu như string, list, tuple, set, dictionary đều có thể hoạt động với hàm

str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
2. Tuy nhiên, chúng ta có thể thấy rằng nó trả về thông tin cụ thể về các loại dữ liệu cụ thể

Quá tải phương thức trong python w3schools
Tính đa hình trong hàm len() trong Python

Đa hình lớp trong Python

Đa hình là một khái niệm rất quan trọng trong Lập trình hướng đối tượng

Để tìm hiểu thêm về OOP trong Python, hãy truy cập. Lập trình hướng đối tượng Python

Chúng ta có thể sử dụng khái niệm đa hình trong khi tạo các phương thức lớp vì Python cho phép các lớp khác nhau có các phương thức có cùng tên

Sau đó, chúng ta có thể khái quát hóa việc gọi các phương thức này bằng cách bỏ qua đối tượng mà chúng ta đang làm việc với. Hãy xem một ví dụ

ví dụ 3. Đa hình trong các phương thức lớp

This message is from Emp
------------
This Department is inherited from Emp
2

đầu ra

This message is from Emp
------------
This Department is inherited from Emp
3

Ở đây, chúng tôi đã tạo hai lớp

str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
4 và
str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
5. Chúng có chung cấu trúc và có cùng tên phương thức
str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
6 và
str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
7

Tuy nhiên, lưu ý rằng chúng tôi đã không tạo một siêu lớp chung hoặc liên kết các lớp với nhau theo bất kỳ cách nào. Thậm chí sau đó, chúng ta có thể đóng gói hai đối tượng khác nhau này thành một bộ và lặp qua nó bằng cách sử dụng một biến động vật chung. Có thể do đa hình


Đa hình và kế thừa

Giống như các ngôn ngữ lập trình khác, các lớp con trong Python cũng thừa hưởng các phương thức và thuộc tính từ lớp cha. Chúng ta có thể định nghĩa lại một số phương thức và thuộc tính cụ thể để phù hợp với lớp con, được gọi là Ghi đè phương thức

Tính đa hình cho phép chúng ta truy cập các phương thức và thuộc tính bị ghi đè này có cùng tên với lớp cha

Hãy xem một ví dụ

Ví dụ 4. Ghi đè phương thức

This message is from Emp
------------
This Department is inherited from Emp
8

đầu ra

This message is from Emp
------------
This Department is inherited from Emp
9

Ở đây, chúng ta có thể thấy rằng các phương thức như

str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
8, không được ghi đè trong các lớp con, được sử dụng từ lớp cha

Do tính đa hình, trình thông dịch Python tự động nhận ra rằng phương thức

str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
9 cho đối tượng
print(len("Programiz"))
print(len(["Python", "Java", "C"]))
print(len({"Name": "John", "Address": "Nepal"}))
0(Lớp vuông) bị ghi đè. Vì vậy, nó sử dụng cái được định nghĩa trong lớp con

Mặt khác, vì phương thức

str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
9 cho đối tượng b không bị ghi đè nên nó được sử dụng từ lớp Parent Shape

Quá tải phương thức trong python w3schools
Đa hình trong các lớp cha và con trong Python

Ghi chú. Nạp chồng phương thức, một cách để tạo nhiều phương thức có cùng tên nhưng khác đối số, không thể thực hiện được trong Python

Nạp chồng phương thức trong Python là gì?

Hai hoặc nhiều phương thức có cùng tên nhưng khác số lượng tham số hoặc khác loại tham số hoặc cả hai . Các phương thức này được gọi là nạp chồng phương thức và đây được gọi là nạp chồng phương thức.

Quá tải trong Python với ví dụ là gì?

Ví dụ: toán tử + sẽ thực hiện phép cộng số học trên hai số, hợp nhất hai danh sách hoặc nối hai chuỗi. Tính năng này trong Python cho phép cùng một toán tử có ý nghĩa khác nhau tùy theo ngữ cảnh được gọi là nạp chồng toán tử.

Ghi đè phương thức trong Python w3schools là gì?

Ghi đè phương thức là một khả năng của bất kỳ ngôn ngữ lập trình hướng đối tượng nào cho phép một lớp con hoặc lớp con cung cấp một triển khai cụ thể của một phương thức đã được cung cấp bởi một trong các lớp cha hoặc lớp cha của nó

Nạp chồng phương thức là gì?

Quá tải phương thức là một dạng đa hình trong OOP . Tính đa hình cho phép các đối tượng hoặc phương thức hành động theo những cách khác nhau, tùy theo phương tiện mà chúng được sử dụng. Một trong những cách mà các phương thức hoạt động theo các loại đối số và số lượng đối số của chúng là nạp chồng phương thức.