ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java

สารบัญ:

ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java
ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java

วีดีโอ: ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java

วีดีโอ: ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java
วีดีโอ: DIFFERENCES BETWEEN METHOD OVERLOADING AND OVERRIDING - JAVA PROGRAMMING 2024, พฤศจิกายน
Anonim

ความแตกต่างที่สำคัญ – การโอเวอร์โหลดและการเอาชนะใน Java

การเขียนโปรแกรมเชิงวัตถุ (OOP) เป็นกระบวนทัศน์สำคัญในการพัฒนาซอฟต์แวร์ เป็นวิธีการออกแบบโปรแกรมโดยใช้คลาสและอ็อบเจ็กต์ ชั้นเรียนเป็นพิมพ์เขียว มันอธิบายสิ่งที่ควรมีในวัตถุ กำหนดคุณสมบัติหรือแอตทริบิวต์และวิธีการที่วัตถุควรประกอบด้วย ดังนั้น วัตถุจึงเป็นตัวอย่างของคลาส วัตถุเหล่านี้สื่อสารกับวัตถุอื่น แนวคิดหลักประการหนึ่งของ OOP คือ Polymorphism เป็นความสามารถสำหรับวัตถุที่จะประพฤติตัวได้หลายวิธี Polymorphism แบ่งออกเป็น 2 ส่วนคือ Overloading และ Overrideบทความนี้กล่าวถึงความแตกต่างระหว่างสองสิ่งนี้ใน Java ความแตกต่างที่สำคัญระหว่างการโอเวอร์โหลดและการแทนที่ใน Java คือการโอเวอร์โหลดคือความสามารถในการสร้างเมธอดหลายเมธอดที่มีชื่อเดียวกันพร้อมการใช้งานที่แตกต่างกัน และการแทนที่คือการจัดเตรียมการใช้งานสำหรับเมธอดซับคลาสที่มีอยู่แล้วในซูเปอร์คลาส

Java โอเวอร์โหลดคืออะไร

การโอเวอร์โหลดคือความสามารถในการสร้างเมธอดที่มีชื่อเดียวกันได้หลายวิธีพร้อมการใช้งานที่แตกต่างกัน อ้างอิงโค้ด Java ด้านล่าง

ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java
ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java
ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java
ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java

รูปที่ 01: โปรแกรม Java ที่อธิบายการโอเวอร์โหลดด้วยจำนวนอาร์กิวเมนต์ต่างกัน

ตามโปรแกรมข้างต้น คลาส A มีสองวิธีที่มีชื่อเดียวกัน วิธีผลรวมแรกมีสองพารามิเตอร์ วิธีผลรวมที่สองมีสามพารามิเตอร์ เมื่อสร้างวัตถุประเภท A และเรียก sum(2, 3) จะเรียกวิธี sum ด้วยพารามิเตอร์สองตัวที่เป็นผลรวม (int a, int b) และส่งคืน 5. เมื่อสร้างวัตถุประเภท A และเรียก sum(2, 3, 4) มันจะเรียกวิธีผลรวมอื่นด้วยสามพารามิเตอร์ซึ่งก็คือผลรวม (int a, int b, int c) และส่งคืน 9.

ชื่อเมธอดเหมือนกันแต่จำนวนพารามิเตอร์ต่างกัน สังเกตได้ว่าวัตถุตัวเดียวกันมีพฤติกรรมต่างกัน แนวคิดนี้เรียกว่าโอเวอร์โหลด เรียกอีกอย่างว่า Static Binding หรือ Compiles Time Polymorphism

นอกจากนี้ยังสามารถโอเวอร์โหลดด้วยข้อมูลประเภทต่างๆ อ้างอิงโค้ด Java ด้านล่าง

ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java_Figure 02
ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java_Figure 02
ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java_Figure 02
ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java_Figure 02

รูปที่ 02: โปรแกรม Java ซึ่งอธิบายการโอเวอร์โหลดด้วยจำนวนอาร์กิวเมนต์ที่แตกต่างกัน

ตามโปรแกรมข้างต้น คลาส A ประกอบด้วยสองวิธีที่มีชื่อเดียวกัน sum(int a, int b) วิธีการรับค่าจำนวนเต็มสองค่า ผลรวม (double a double b) ได้รับค่าสองเท่าสองค่า เมื่อสร้างวัตถุประเภท A และเรียก sum(2, 3) จะเรียก sum(int a, int b) และคืนค่า 5. เมื่อเรียก sum (3.4, 5.6) จะเรียก sum (double a double) b) และคืนค่า 9.0 ในตัวอย่างนี้ เมธอดมีชื่อเหมือนกัน แต่มีประเภทตัวแปรต่างกัน นี่ก็โอเวอร์โหลดเช่นกัน

การเอาชนะใน Java คืออะไร

ใน Java สามารถสร้างคลาสย่อยด้วยคลาสที่มีอยู่แล้วได้แทนที่จะสร้างคลาสใหม่ตั้งแต่ต้น คุณสามารถใช้คุณสมบัติและเมธอดของคลาสที่มีอยู่แล้วได้ คลาสที่มีอยู่คือซูเปอร์คลาส และคลาสที่ได้รับคือคลาสย่อย เมื่อคลาสย่อยจัดเตรียมการใช้งานสำหรับเมธอดซึ่งมีอยู่แล้วในซูเปอร์คลาส จะเรียกว่าการแทนที่ อ้างถึงโปรแกรม Java ด้านล่าง

ความแตกต่างที่สำคัญระหว่างการโอเวอร์โหลดและการเอาชนะใน Java
ความแตกต่างที่สำคัญระหว่างการโอเวอร์โหลดและการเอาชนะใน Java
ความแตกต่างที่สำคัญระหว่างการโอเวอร์โหลดและการเอาชนะใน Java
ความแตกต่างที่สำคัญระหว่างการโอเวอร์โหลดและการเอาชนะใน Java

รูปที่ 03: โปรแกรม Java สำหรับการแทนที่

ตามโปรแกรมด้านบน คลาส A กำลังแสดงเมธอด () คลาส B ขยายจากคลาส A ดังนั้นคุณสมบัติและวิธีการของคลาส A สามารถเข้าถึงได้โดยคลาส Bคลาส B มีเมธอด display() พร้อมการใช้งานเฉพาะ เมื่อสร้างอ็อบเจ็กต์ประเภท A และเรียกใช้เมธอดการแสดงผล ออบเจ็กต์ดังกล่าวจะให้เอาต์พุต B แม้ว่าคลาส A จะมีวิธีการแสดง แต่ก็จะถูกแทนที่ด้วยวิธีการแสดงคลาส B คลาสย่อยกำลังใช้เมธอดที่มีอยู่แล้วในซูเปอร์คลาส

แนวคิดนี้เป็นประเภทของความหลากหลายและเรียกว่าการเอาชนะ เรียกอีกอย่างว่า Late Binding, Dynamic Binding, Runtime Polymorphism

ความคล้ายคลึงกันระหว่างการโอเวอร์โหลดและการเอาชนะใน Java คืออะไร

  • ทั้งสองเป็นแบบของ Polymorphism
  • ในการโอเวอร์โหลดและการแทนที่ เมธอดมีชื่อเหมือนกัน

ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java คืออะไร

โอเวอร์โหลด vs โอเวอร์ไรด์ใน Java

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

สรุป – โอเวอร์โหลด vs โอเวอร์ไรด์ใน Java

Polymorphism เป็นแนวคิดหลักในการเขียนโปรแกรมเชิงวัตถุ ให้ความสามารถสำหรับวัตถุในการทำงานได้หลายวิธี นี่อาจเป็นการโอเวอร์โหลดหรือโอเวอร์ไรด์ การโอเวอร์โหลดคือความแตกต่างของเวลาคอมไพล์ และการแทนที่คือความแตกต่างระหว่างรันไทม์ มีประโยชน์ในการพัฒนาแอพพลิเคชั่นซอฟต์แวร์ ความแตกต่างระหว่างการแทนที่และการโอเวอร์โหลดคือ การโอเวอร์โหลดคือความสามารถในการสร้างเมธอดหลายเมธอดที่มีชื่อเดียวกันพร้อมการใช้งานที่แตกต่างกัน และการโอเวอร์ไรด์กำลังจัดเตรียมการใช้งานเฉพาะในเมธอดคลาสย่อยสำหรับเมธอดที่มีอยู่แล้วในซูเปอร์คลาส เป็นไปได้ที่จะใช้งานทั้งการโอเวอร์โหลดและการแทนที่ใน Java

ดาวน์โหลดไฟล์ PDF โอเวอร์โหลด vs โอเวอร์ไรด์ใน Java

คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่ความแตกต่างระหว่างการโอเวอร์โหลดและการเอาชนะใน Java

แนะนำ: