ความหลากหลายใน Java มีสองประเภท: การโอเวอร์โหลดและการแทนที่วิธีการโอเวอร์โหลดเป็นหนึ่งในสองประเภทของความหลากหลาย
ตัวอย่างเช่น เมื่อคุณขอให้บุคคลดำเนินการ "ค้นหาพื้นที่" เขาอาจถามคุณว่าคุณกำลังมองหาพื้นที่ใด
Functional Polymorphism หมายความว่าสามารถส่งข้อความที่แตกต่างกันไปยังฟังก์ชันต่างๆ เพื่อให้วัตถุสามารถสร้างพฤติกรรมที่สอดคล้องกันตามข้อความที่เกี่ยวข้องได้ พฤติกรรมของวัตถุสะท้อนให้เห็นผ่านวิธีการในชั้นเรียน ดังนั้นความหลากหลายของพฤติกรรมจึงเป็นการโอเวอร์โหลดของวิธีการ
กฎไวยากรณ์สำหรับการโอเวอร์โหลดวิธีการ:
การโอเวอร์โหลดเมธอดหมายความว่าสามารถมีได้หลายวิธีที่มีชื่อเดียวกันในคลาส แต่พารามิเตอร์ของเมธอดเหล่านี้จะต้องแตกต่างกัน จำนวนพารามิเตอร์ต่างกัน หรือจำนวนพารามิเตอร์เท่ากัน แต่ประเภทของพารามิเตอร์ที่เกี่ยวข้องในรายการพารามิเตอร์นั้นแตกต่างกัน
ตัวอย่างเช่น:
classPeople {floathello (inta, intb) {returna + b;} floatathello (longa, intb) {returna-b;} doublehello (doublea, intb) {returna * b;}} publicclassMain {publicstaticvoidmain (Stringargs []) {Peopletom = newPeople();System.out.println(tom.hello(10,10));System.out.println(tom.hello(10L,10));System.out.println(tom.hello(10.0,10) );}}
ผลการวิ่งมีดังนี้:
20.00.0100.0
สังเกต:
หากทั้งสองวิธีมีชื่อเหมือนกัน พารามิเตอร์จะต้องแตกต่างกันแม้ว่าประเภทการส่งคืนจะแตกต่างกันก็ตาม