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

กฎสำหรับการแทนที่เมธอด Java


ต่อไปนี้คือกฎที่เราควรพิจารณาในขณะที่แทนที่เมธอดอย่างถูกต้อง -

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