ตัวสร้างของ Java เป็นบทบาทที่สำคัญมาก ก่อนอื่นตัวสร้างใน Java สามารถมากเกินไปและเนื่องจากมันยังสามารถสืบทอดได้จากตัวสร้างของคลาสแม่ในคลาสย่อยสิ่งแรกคือการเรียกคอนสตรัคเตอร์ของคลาสแม่ คุณสามารถเปรียบเทียบกับสองตัวอย่างต่อไปนี้:
การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง args []) {b b = ใหม่ b (100); }} คลาส A {สาธารณะ a () {system.out.println ("A ไม่มีพารามิเตอร์ใด ๆ "); } สาธารณะ a (int i) {system.out.println ("A พร้อมพารามิเตอร์"); }} คลาส B ขยาย {สาธารณะ b () {system.out.println ("b ไม่มีพารามิเตอร์ใด ๆ "); } สาธารณะ b (int i) {system.out.println ("b กับพารามิเตอร์"); -ผลลัพธ์สุดท้ายของตัวอย่างนี้คือ
A ไม่มีพารามิเตอร์ใด ๆ
B พร้อมพารามิเตอร์
คุณจะเห็นได้ว่าสิ่งแรกที่คุณเรียกว่าเป็นตัวสร้างของคลาสแม่และจากนั้นตัวสร้างของตัวเองจะถูกเรียก อย่างไรก็ตามเนื่องจากตัวสร้างที่มีพารามิเตอร์ในคลาส B ที่นี่ไม่มีคลาสพาเรนต์ที่ยอดเยี่ยมจึงจะดำเนินการคอนสตรัคเตอร์โดยไม่มีพารามิเตอร์ของคลาสแม่ หากคุณต้องการให้มันดำเนินการสร้างคลาสแม่ด้วยพารามิเตอร์คุณต้องเขียนรหัสเช่นนี้:
การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง args []) {b b = ใหม่ b (100); }} คลาส A {สาธารณะ a () {system.out.println ("A ไม่มีพารามิเตอร์ใด ๆ "); } สาธารณะ a (int i) {system.out.println ("A พร้อมพารามิเตอร์"); }} คลาส B ขยาย {สาธารณะ b () {system.out.println ("b ไม่มีพารามิเตอร์ใด ๆ "); } สาธารณะ b (int i) {super (i); // นี่คือพารามิเตอร์ตัวสร้าง System.out.println ("B พร้อมพารามิเตอร์"); -ดังนั้นผลลัพธ์สุดท้ายคือ:
A พร้อมพารามิเตอร์
B พร้อมพารามิเตอร์
ดังนั้นคลาสที่ได้รับจะต้องใช้ Super เพื่อเรียกตัวสร้างที่มีพารามิเตอร์ของคลาสแม่ นี่คือคำถามอื่น:
การทดสอบระดับสาธารณะขยาย x {y y = new y (); ทดสอบ () {system.out.print ("z"); } โมฆะคงที่สาธารณะหลัก (สตริง args []) {การทดสอบใหม่ (); }} คลาส x {y b = new y (); x () {system.out.print ("x"); }} คลาส y {y () {system.out.print ("y"); -ผลลัพธ์ผลลัพธ์คืออะไร?
ก่อนอื่นมาวิเคราะห์คำถามนี้:
เนื่องจากดูที่ฟังก์ชั่นหลักนี้เป็นครั้งแรกมีรหัสเดียวสำหรับฟังก์ชั่นหลักนี้: การทดสอบใหม่ (); เนื่องจากฉันพบว่าคลาสทดสอบนี้สืบทอดมาจาก X ฉันต้องสร้าง X ก่อนดังนั้นฉันจึงเรียกใช้ X Class Y B = new Y () จากนั้นเราสามารถเห็นเอาต์พุต y จากนั้นเรียกใช้ตัวสร้างของ X class X และเอาต์พุต X; จากนั้นสร้าง y จากนั้นเรียกใช้ตัวสร้างการทดสอบของตัวเองเอาต์พุต z ดังนั้นผลลัพธ์เอาต์พุตคือ yxyz
คำอธิบายโดยละเอียดข้างต้นเกี่ยวกับความรู้บางอย่างเกี่ยวกับตัวสร้างใน Java คือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น