ไม่ ในขณะที่แทนที่เมธอดของ 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