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

เราสามารถเปลี่ยนวิธีการลายเซ็นในการแทนที่ใน Java ได้หรือไม่?


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

กล่าวโดยสรุป หากเราเปลี่ยนลายเซ็น คุณจะไม่สามารถแทนที่เมธอดของ super class ได้ ถ้าคุณลองเมธอดของ super class จะถูกดำเนินการ

เหตุผล - หากคุณเปลี่ยนลายเซ็นทั้งสองจะถือเป็นวิธีการที่แตกต่างกัน และเนื่องจากสำเนาของวิธี super class มีอยู่ที่วัตถุ sub class มันจะถูกดำเนินการ

ตัวอย่าง

class Super {
   void sample(int a, int b) {
      System.out.println("Method of the Super class");
   }
}
public class MethodOverriding extends Super {
   void sample(int a, float b) {
      System.out.println("Method of the Sub class");
   }
   public static void main(String args[]) {
      MethodOverriding obj = new MethodOverriding();
      obj.sample(20, 20);
   }
}

ผลลัพธ์

Method of the Super class