Super เป็นเรื่องธรรมดาใน Android และฉันไม่เข้าใจโดยไม่มีมูลนิธิ Java ดังนั้นฉันจึงมีเวลาเรียนรู้
การใช้ super ในคลาส Java เพื่ออ้างอิงส่วนประกอบของคลาสฐานค่อนข้างง่ายและตัวอย่างมีดังนี้:
ชั้นเรียน class class {ค่า int สาธารณะ; โมฆะสาธารณะ f () {value = 100; System.out.println ("fartyclass.value:"+ค่า); }} คลาสเด็ก ๆ ขยายค่านิยม {ค่า int สาธารณะ; โมฆะสาธารณะ f () {super.f (); ค่า = 200; System.out.println ("childclass.value:"+ค่า); System.out.println (ค่า); System.out.println (super.value); }} คลาสสาธารณะ test1 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {childClass cc = new ChildClass (); CC.F (); - ผลลัพธ์สุดท้ายคือ:
FAYCLASS.VALUE: 100CHILDCLASS.VALUE: 200200100
นอกจากนี้ Super ยังใช้ในการก่อสร้างมรดกกฎเฉพาะมีดังนี้:
1. วิธีการก่อสร้างของชั้นฐานจะต้องเรียกในระหว่างกระบวนการก่อสร้างของคลาสย่อย
2. คลาสย่อยสามารถใช้ super (argion_list) เพื่อเรียกวิธีการสร้างคลาสฐานในตัวสร้างของตนเอง
3. หากตัวสร้างของคลาสย่อยไม่แสดงในตัวสร้างของคลาสฐานระบบจะเรียกตัวสร้างพารามิเตอร์ที่ไม่มีพารามิเตอร์ของคลาสฐานโดยค่าเริ่มต้น
4. หากตัวสร้างคลาสย่อยไม่แสดงการเรียกไปยังตัวสร้างคลาสฐานและคลาสฐานไม่มีตัวสร้างที่ไม่มีพารามิเตอร์ข้อผิดพลาดในการรวบรวมจะเกิดขึ้น
ตัวอย่างมีดังนี้: (เป็นการดีที่สุดที่จะทดสอบด้วยตัวเองที่นี่)
คลาส superclass {private int n; superclass () {system.out.println ("โทร superclass ()"); } superclass (int n) {system.out.println ("โทร superclass ("+n+")"); }} คลาสย่อยของคลาสขยาย superclass {private int n; subclass (int n) {// เมื่อวิธีการก่อสร้าง superclass ไม่ได้เขียนในวิธีการก่อสร้าง subclass ระบบเริ่มต้นที่จะเรียกคลาสพาเรนต์โดยไม่ต้องพารามิเตอร์ // มันเทียบเท่ากับการเขียนต่อไปนี้ที่นี่: // super (); System.out.println ("โทร suberclass ("+n+")"); this.n = n; } subclass () {super (300); // ตัวสร้างคลาสหลักจะต้องถูกเรียกในระหว่างกระบวนการก่อสร้าง subclass และซูเปอร์ต้องเขียนในประโยคแรก (มีพ่อคนแรกและจากนั้นลูกชาย) system.out.println ("โทร subclass ()"); }} คลาสสาธารณะ test2 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {subclass sc1 = subclass ใหม่ (); subclass sc2 = subclass ใหม่ (400); - ผลลัพธ์สุดท้ายคือ:
โทร SuperClass (300) โทร subclass () โทร superclass () โทร subclass (400)
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน