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

วิธีการแทนที่ใน Java


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

ในแง่วัตถุ การแทนที่หมายถึงการแทนที่ฟังก์ชันการทำงานของวิธีการที่มีอยู่

ตัวอย่าง

มาดูตัวอย่างกัน

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 จะเป็นสัตว์ประเภทหนึ่ง แต่ก็ใช้วิธีย้ายในคลาส Dog เหตุผลคือ ในเวลารวบรวม จะมีการตรวจสอบประเภทอ้างอิง อย่างไรก็ตาม ในรันไทม์ JVM จะคำนวณประเภทอ็อบเจ็กต์และจะรันเมธอดที่เป็นของอ็อบเจ็กต์นั้น
ดังนั้นในตัวอย่างข้างต้น โปรแกรมจะทำการคอมไพล์อย่างถูกต้องเนื่องจากคลาส Animal มีเมธอดย้าย จากนั้น รันเมธอดเฉพาะสำหรับอ็อบเจกต์นั้น ณ รันไทม์