nạp chồng phương thức

Chủ đề mới và thú vị của chúng ta ngày hôm nay là nạp chồng phương thức . Hãy cẩn thận - không được nhầm lẫn nạp chồng phương thức với ghi đè phương thức.

Không giống như ghi đè, quá tải là một hoạt động rất đơn giản. Nó thực sự không phải là một hoạt động trên các phương pháp, mặc dù đôi khi nó được gọi bằng thuật ngữ đa hình tham số khủng khiếp .

Vấn đề ở đây là tất cả các phương thức trong một lớp phải có tên duy nhất. Chà, điều đó không hoàn toàn chính xác. Chà, chính xác hơn, điều đó không chính xác chút nào. Tên phương thức không nhất thiết phải là duy nhất. Điều phải là duy nhất là sự kết hợp của tên phương thức và các loại tham số của phương thức. Liên kết này được gọi là chữ ký phương thức

Ví dụ:

Mã số Sự miêu tả
public void print();
public void print2();
Điều này được cho phép. Hai phương pháp có tên duy nhất.
public void print();
public void print(int n);
Và cả điều này nữa. Hai phương pháp có tên duy nhất (chữ ký).
public void print(int n, int n2);
public void print(int n);
Các phương pháp vẫn là duy nhất
public int print(int a);
public void print(int n);
Nhưng điều này không được phép . Các phương pháp không phải là duy nhất . Mặc dù họ trả về các loại khác nhau.
public int print(int a, long b);
public long print(long b, int a);
Nhưng bạn có thể làm điều này . Các tham số của phương thức là duy nhất

Chữ ký bao gồm tên phương thức và các loại tham số . Nó không bao gồm kiểu trả về của phương thức và tên tham số . Một lớp không thể có hai phương thức có cùng chữ ký — trình biên dịch sẽ không biết nên gọi phương thức nào.

Tên tham số không quan trọng vì chúng bị mất trong quá trình biên dịch. Khi một phương thức được biên dịch, chỉ có tên và kiểu tham số của nó được biết. Kiểu trả về không bị mất, nhưng kết quả của phương thức không phải được gán cho bất kỳ thứ gì, vì vậy nó cũng không được bao gồm trong chữ ký.

Theo nguyên tắc OOP , tính đa hình đang ẩn các triển khai khác nhau đằng sau một giao diện duy nhất. System.out.println()Ví dụ, khi chúng ta gọi phương thức, các phương thức khác nhau được gọi tùy thuộc vào đối số nào được truyền vào. Đây là đa hình trong hành động.

Đó là lý do tại sao các phương thức khác nhau có tên giống hệt nhau chứa trong cùng một lớp được coi là một dạng đa hình yếu.