Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

การโอเวอร์ไรด์เมธอดใน Java

การ Override (การโอเวอร์ไรด์) คือความสามารถในการกำหนดพฤติกรรมที่เฉพาะเจาะจงต่อประเภทของซับคลาส (subclass type) หมายความว่าซับคลาสสามารถนำเมธอดของคลาสแม่ไปใช้งานตามความต้องการของมันได้

ในทางวัตถุ-เชิงวัตถุ (object-oriented terms) การ override หมายถึงการแทนที่ฟังก์ชันการทำงานของเมธอดที่มีอยู่แล้ว

ตัวอย่าง

ลองดูตัวอย่าง

class Animal {    public void move() {       System.out.println("Animals can move");    } } class Dog extends Animal {    public void move() {       System.out.println("Dogs can walk and run");    } } public class TestDog {    public static void main(String args[]) {       Animal a = new Animal(); // Animal reference and object       Animal b = new Dog(); // Animal reference but Dog object       a.move(); // runs the method in Animal class       b.move(); // runs the method in Dog class    } }

ผลลัพธ์

นี่จะผลิตผลลัพธ์ดังนี้:

Animals can move Dogs can walk and run

ในตัวอย่างข้างต้น คุณสามารถเห็นได้ว่า แม้ b จะเป็นประเภทของ Animal มันก็รันเมธอด move ในคลาส Dog เหตุผลคือ: ในขณะคอมไพล์ การตรวจสอบทำบนประเภทอ้างอิง อย่างไรก็ตาม ในรันไทม์ JVM จะระบุประเภทออบเจ็กต์และจะรันเมธอดที่เป็นของออบเจ็กต์เฉพาะนั้น ดังนั้น ในตัวอย่างข้างต้น โปรแกรมจะคอมไพล์ได้อย่างถูกต้อง เนื่องจากคลาส Animal มีเมธอด move แล้วในรันไทม์ มันจะรันเมธอดที่เฉพาะเจาะจงสำหรับออบเจ็กต์นั้น