ความหลากหลายเป็นหนึ่งในแนวคิด OOP ที่สำคัญที่สุด เป็นแนวคิดที่เราสามารถทำงานชิ้นเดียวได้หลายวิธี ความแตกต่างมีอยู่สองประเภท ประเภทแรกคือ Polymorphism ของ Compile-time และอีกประเภทหนึ่งคือ Polymorphism แบบรันไทม์
เมธอดโอเวอร์โหลดเป็นตัวอย่างของความแตกต่างของเวลาคอมไพล์ และการแทนที่เมธอดเป็นตัวอย่างของความแตกต่างระหว่างรันไทม์
ซีเนียร์ เลขที่ | คีย์ | Compile-time polymorphism | รันไทม์พหุสัณฐาน |
---|---|---|---|
1 | พื้นฐาน | Compile time polymorphism หมายถึงการผูกเกิดขึ้นในเวลาที่รวบรวม | R un time polymorphism เมื่อรันไทม์เรารู้ว่าวิธีใดที่จะเรียกใช้ |
2 | สแตติก/ไดนามิก ผูกพัน | สามารถทำได้ผ่านการผูกแบบคงที่ | สามารถทำได้ผ่านการผูกแบบไดนามิก |
4. | การสืบทอด | ไม่รับมรดก | มีส่วนในการรับมรดก |
5 | ตัวอย่าง | เมธอดโอเวอร์โหลดเป็นตัวอย่างของคอมไพล์เวลา polymorphism | การแทนที่เมธอดเป็นตัวอย่างของความแตกต่างระหว่างรันไทม์ |
ตัวอย่างของ Compile-time Polymorphism
คลาสสาธารณะหลัก { โมฆะคงที่สาธารณะหลัก (สตริง args []) { CompileTimePloymorphismExample obj =ใหม่ CompileTimePloymorphismExample (); obj.display(); obj.display("พหุสัณฐาน"); }} class CompileTimePloymorphismExample { การแสดงเป็นโมฆะ () { System.out.println ("ในการแสดงผลโดยไม่มีพารามิเตอร์"); } การแสดงเป็นโมฆะ (ค่าสตริง) { System.out.println ("ในการแสดงผลพร้อมพารามิเตอร์" + ค่า); }}