Skip to main content

Phương pháp quá tải là gì?

Quá tải phương thức là một tính năng trong hầu hết các ngôn ngữ lập trình hướng đối tượng trong đó hai hoặc nhiều phương thức có chung tên nhưng có các tham số khác nhau.Cụ thể, số, kiểu dữ liệu và/hoặc thứ tự của các tham số là khác nhau.Khi mã được biên dịch, phương thức chính xác sẽ được chọn tự động dựa trên cách được gọi.Các phương pháp còn được gọi là các hàm trong một số ngôn ngữ lập trình, do đó quá tải phương thức đôi khi được gọi là quá tải chức năng. Một ví dụ đơn giản về quá tải phương thức sẽ là một phương pháp tính toán diện tích của một hình vuông.Nó có thể được định nghĩa là getarea (vuông).Phương pháp này có thể bị quá tải để tính toán thêm diện tích của vòng tròn bằng cách thêm phương thức GetArea (Circle C). Yêu cầu chính cho quá tải phương thức là các phương thức có cùng tên.Chữ ký phương pháp của họ mdash;Tên phương thức, số lượng tham số và các loại dữ liệu tham số mdash;nếu không thì là duy nhất.Theo cách này, trình biên dịch có thể xác định phương thức nào để thực thi. Các hàm tạo, các phương thức được sử dụng để khởi tạo các đối tượng, thường bị quá tải.Điều này được thực hiện để khởi tạo một đối tượng với các giá trị không mặc định.Ví dụ: một đối tượng nhân viên có hai trường (tên và ngày sinh hoặc DOB) có thể có các hàm tạo quá tải sau: nhân viên (), nhân viên (tên) và nhân viên (tên, dob).Trình xây dựng đầu tiên tạo ra một đối tượng nhân viên có tên trống và các trường DOB.Thứ hai đặt trường tên, nhưng để lại trường DOB và thứ ba xác định cả hai trường tên và DOB. Quá tải phương thức thường được thực hiện để thực hiện nhiều hơn một phương thức xuất hiện một cách hợp lý như một phương thức duy nhất.Trong ví dụ getArea (), trong khi có hai phương thức về mặt vật lý, người gọi được trình bày với một phương thức getArea () logic () duy nhất.Theo cách này, getarea () có thể được mở rộng để làm việc trên các hình dạng khác mdash;hình tam giác, hình thang, v.v. trên mdash;Mặc dù vẫn trình bày một cách logic như một phương pháp duy nhất. Các phương pháp cũng bị quá tải để bảo tồn khả năng tương thích ngược.Một phương pháp thực hiện một phép tính phức tạp có thể được đưa ra một yêu cầu mới để tùy chọn thực hiện tính toán tương tự với một thay đổi nhỏ.Một tham số mới được thêm vào phương thức sẽ xác định cách thực hiện tính toán mdash;Cách cũ hoặc cách mới. Để tránh phải tìm tất cả các trường hợp trong đó phương thức được gọi và thêm tham số mới, phương thức có thể bị quá tải.Phương pháp mới sẽ có chữ ký cũ và được gọi bằng mã hiện có.Nó sẽ không chứa bất kỳ logic nào và chỉ cần gọi phương thức đã sửa đổi và chuyển theo mặc định của Old Old Way cho tham số mới.Mã mới sẽ gọi phương thức đã sửa đổi và vượt qua tham số mới với giá trị phù hợp, cách cũ hoặc cách mới. Phương pháp quá tải là một loại đa hình, trong đó thực tế, phương pháp logic có thể được sử dụng theo nhiều cách.Quá tải phương thức không giống như ghi đè phương thức.Phương pháp ghi đè là nơi định nghĩa của một phương thức trong lớp cha được thay đổi bởi một lớp con.Trong trường hợp này, cả hai phương thức sẽ có cùng một chữ ký.