วิธีการใช้งานวิธีการซ่อนใน Java



บทความนี้จะให้ความรู้โดยละเอียดและครอบคลุมเกี่ยวกับวิธีการใช้งานวิธีการซ่อนใน Java พร้อมตัวอย่าง

ใน คุณต้องระมัดระวังเกี่ยวกับความเป็นไปได้ในการซ่อนวิธีการ เมธอดที่สร้างขึ้นด้วยชนิดและลายเซ็นเดียวกันในคลาสย่อยสามารถซ่อนตัวแปรในซูเปอร์คลาสได้ ในบทความนี้เราจะเข้าใจวิธีการซ่อนใน Java ในลักษณะต่อไปนี้:

วิธีการซ่อนคืออะไร?

การซ่อนเมธอดมีลักษณะการทำงานคล้ายกับการลบล้าง ในการลบล้างหากคุณสร้างเมธอดในคลาสย่อยที่มีประเภทและลายเซ็นเดียวกันในคลาสย่อยจะอนุญาตให้เรียกใช้เมธอดตามประเภทของอินสแตนซ์





โลโก้ Java

ในกรณีของวิธีการคงที่ประเภทเดียวกันและลายเซ็นในซูเปอร์คลาสและคลาสย่อยจากนั้นเมธอดในคลาสย่อยจะซ่อนเมธอดในซูเปอร์คลาส



วิธีการซ่อนรหัส Java

แพคเกจ com.test class Parent {public static void foo () {System.out.println ('Inside foo method in parent class')} public void bar () {System.out.println ('Inside bar method in parent class' )}} class Child ขยาย Parent {// Hiding public static void foo () {System.out.println ('Inside foo method in child class')} // Overriding public void bar () {System.out.println (' เมธอดอินไซด์บาร์ในคลาสลูก ')}} โค้ดคลาสสาธารณะ {public static void main (String [] args) {Parent p = new Parent () Parent c = new Child () System.out.println (' **** ************ วิธีการซ่อน ******************* ') p.foo () // ซึ่งจะเรียกเมธอดในคลาสแม่ค .foo () // ซึ่งจะเรียกเมธอดในคลาสแม่ System.out.println ('**************** วิธีการแทนที่ ************ ******* ') p.bar () // ซึ่งจะเรียกเมธอดในคลาสแม่ c.bar () // ซึ่งจะเรียกเมธอดในคลาสลูก}}

เอาท์พุต:

ในข้างต้นตัวอย่างเช่นคลาสย่อย Child มีเมธอดแบบคงที่ foo () ที่มีชื่อและลายเซ็นเดียวกันกับวิธีการแบบคงที่ในซูเปอร์คลาสพาเรนต์ เมื่อเราเรียก p.foo () และ c.foo () มันจะเรียกวิธี foo () ในคลาสพาเรนต์



ไม่เหมือนกับวิธีการแทนที่โดยที่ p.bar () เรียกใช้เมธอดในคลาสพาเรนต์และ c.bar () เรียกใช้เมธอดในคลาสลูก

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

สรุป

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

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

ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบทความวิธีการซ่อนใน Java นี้ ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer

เชฟกับหุ่นคืออะไร

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก 'Method Hiding in Java' และเราจะติดต่อกลับโดยเร็วที่สุด