ต่อไปนี้คือกฎที่เราควรพิจารณาในขณะที่แทนที่เมธอดอย่างถูกต้อง -
- รายการอาร์กิวเมนต์ควรเหมือนกับรายการที่ถูกแทนที่ทุกประการ
- ประเภทการส่งคืนควรเหมือนกันหรือประเภทย่อยของประเภทการส่งคืนที่ประกาศในวิธีการแทนที่ดั้งเดิมในซูเปอร์คลาส
- ระดับการเข้าถึงไม่สามารถจำกัดได้มากกว่าระดับการเข้าถึงของเมธอดที่ถูกแทนที่ ตัวอย่างเช่น หากเมธอด superclass ถูกประกาศให้เป็นสาธารณะ เมธอดการแทนที่ในคลาสย่อยจะไม่สามารถเป็นไพรเวตหรือป้องกันได้
- เมธอดอินสแตนซ์สามารถแทนที่ได้ก็ต่อเมื่อคลาสย่อยสืบทอดมาเท่านั้น
- วิธีการที่ประกาศขั้นสุดท้ายไม่สามารถแทนที่ได้
- เมธอดที่ประกาศเป็นสแตติกไม่สามารถแทนที่ได้ แต่สามารถประกาศใหม่ได้
- หากไม่สามารถสืบทอดเมธอดได้ จะไม่สามารถแทนที่เมธอดได้
- คลาสย่อยภายในแพ็คเกจเดียวกันกับซูเปอร์คลาสของอินสแตนซ์สามารถแทนที่เมธอด superclass ใดๆ ที่ไม่ได้ประกาศให้เป็นส่วนตัวหรือขั้นสุดท้าย
- คลาสย่อยในแพ็คเกจอื่นสามารถแทนที่เมธอดที่ไม่สิ้นสุดที่ประกาศเป็นสาธารณะหรือได้รับการปกป้องเท่านั้น
- วิธีการแทนที่สามารถส่งข้อยกเว้นที่ไม่เลือกได้ ไม่ว่าวิธีการที่ถูกแทนที่จะส่งข้อยกเว้นหรือไม่ก็ตาม อย่างไรก็ตาม วิธีการแทนที่ไม่ควรโยนข้อยกเว้นที่ตรวจสอบแล้วซึ่งใหม่หรือกว้างกว่าที่ประกาศโดยวิธีการที่ถูกแทนที่ วิธีการลบล้างอาจมีข้อยกเว้นที่แคบกว่าหรือน้อยกว่าวิธีการแทนที่
- ตัวสร้างไม่สามารถแทนที่ได้