"สวัสดี Amigo! ฉันจะบอกคุณเกี่ยวกับวิธีการโอเวอร์โหลด "

"คุณก็โอเวอร์โหลดได้เหมือนกันนะ?! ช่างเป็นวันอะไร!"

"คุณสามารถทำอะไรได้มากมายกับพวกเขา แต่เราจะไม่พูดถึงเรื่องนั้นในตอนนี้"

"มันเป็นข้อตกลง."

"การโอเวอร์โหลดเป็นการดำเนินการที่ง่ายมากอันที่จริง มันไม่ใช่การดำเนินการกับเมธอดด้วยซ้ำ แม้ว่าบางครั้งจะเรียกมันด้วยชื่อที่น่ากลัวว่า: พาราเมทริก โพลิมอร์ฟิซึม "

สิ่งที่คุณต้องจำไว้คือทุกเมธอดในคลาสจะต้องมีชื่อเฉพาะ

"ใช่ฉันรู้."

"นั่นไม่จริงทั้งหมด ฉันหมายถึง มันไม่จริงเลย เมธอดไม่จำเป็นต้องมีชื่อเฉพาะ สิ่งที่ต้องไม่ซ้ำกันคือการรวมกันของชื่อเมธอดและประเภทของพารามิเตอร์ชุดค่าผสมนี้ก็เช่นกัน เรียกว่าเมธอดซิกเนเจอร์"

รหัส ความคิดเห็น
public void print();
public void print2();
สิ่งนี้ได้รับอนุญาต ทั้งสองวิธีมีชื่อเฉพาะ
public void print();
public void print(int n);
และยังได้รับอนุญาต ทั้งสองวิธีมีชื่อเฉพาะ (ลายเซ็น)
public void print(int n, int n2);
public void print(int n);
ชื่อเมธอดยังคงไม่ซ้ำกันที่นี่
public int print(int a);
public void print(int n);
แต่สิ่งนี้ไม่ได้รับอนุญาต วิธีการไม่ซ้ำกันแม้ว่าจะผ่านประเภทต่างๆ
public int print(int a, long b);
public long print(long b, int a);
แต่สิ่งนี้ได้รับอนุญาต พารามิเตอร์วิธีการไม่ซ้ำกัน

"ฉันเคยเห็นที่ไหนสักแห่งแล้ว"

"ใช่ เมื่อคุณพิมพ์ " System.out.println " IntelliJ IDEA จะแนะนำวิธี การพิมพ์สองสามเวอร์ชันที่ใช้พารามิเตอร์ต่างกัน คอมไพเลอร์จะระบุและเรียกใช้เมธอดที่ต้องการตามประเภทของพารามิเตอร์ที่คุณส่งผ่าน"

"นั่นไม่ใช่เรื่องยาก แต่มันไม่ใช่ความหลากหลาย"

"หรือพูดให้ตรงกว่านั้น ไม่ใช่วิธีการเอาชนะ"

อย่างไรก็ตาม ฉันต้องการชี้ให้เห็นว่าชื่อพารามิเตอร์ไม่เกี่ยวข้องกัน พวกเขาจะหายไปในระหว่างการรวบรวม เมื่อปฏิบัติตามเมธอดแล้วจะทราบเฉพาะชื่อและประเภทพารามิเตอร์เท่านั้น