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