"Xin chào, Amigo! Tôi sẽ nói với bạn về nạp chồng phương thức ."

"Bạn cũng có thể quá tải chúng?! Thật là một ngày!"

"Bạn có thể làm được nhiều điều với chúng, nhưng chúng ta sẽ không đi sâu vào vấn đề đó ngay bây giờ."

"Đó là một thỏa thuận."

"Nạp chồng là một thao tác rất đơn giản. Trên thực tế, nó thậm chí không phải là một thao tác trên các phương thức, mặc dù đôi khi nó được gọi bằng một cái tên đáng sợ: đa hình tham số ."

Điều bạn phải nhớ là mọi phương thức trong một lớp phải có một tên duy nhất.

"Vâng, tôi biết."

"Chà, điều đó không hoàn toàn đúng. Ý tôi là, nó hoàn toàn không đúng. Một phương thức không nhất thiết phải có một tên duy nhất. Cái phải duy nhất là sự kết hợp giữa tên phương thức và các loại tham số của nó . Sự kết hợp này cũng là được gọi là chữ ký phương thức."

Mã số Bình luận
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à điều này cũng được cho phép. 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);
Tên phương thức vẫn là duy nhất ở đây.
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 thức không phải là duy nhất, mặc dù các loại khác nhau đang được thông qua.
public int print(int a, long b);
public long print(long b, int a);
Nhưng điều này được cho phép. Các tham số của phương thức là duy nhất.

"Tôi đã nhìn thấy nó ở đâu rồi."

"Đúng vậy. Khi bạn nhập " System.out.println ", IntelliJ IDEA sẽ đề xuất vài chục phiên bản phương thức in sử dụng các tham số khác nhau. Trình biên dịch chỉ cần xác định và sau đó gọi phương thức được yêu cầu dựa trên các loại tham số mà bạn chuyển."

"Điều đó không quá khó. Nhưng nó không phải là đa hình."

"Hoặc chính xác hơn, nó không ghi đè phương thức."

Nhân tiện, tôi muốn chỉ ra rằng tên tham số không liên quan. Chúng bị mất trong quá trình biên dịch. Khi một phương thức được tuân thủ, chỉ có tên và các loại tham số của nó được biết.