การเชื่อมโยงในภายหลังหมายถึงการเชื่อมโยงตามประเภทของวัตถุที่รันไทม์หรือที่เรียกว่าการเชื่อมโยงแบบไดนามิกหรือการเชื่อมโยงรันไทม์ ในการใช้งานที่มีผลผูกพันล่าช้ากลไกบางอย่างจะต้องได้รับการสนับสนุนโดยสิ่งนี้เพื่อให้ประเภทของวัตถุสามารถตัดสินได้ที่รันไทม์และค่าใช้จ่ายในการโทรมากกว่าของการผูกก่อนหน้านี้
วิธีการคงที่และวิธีการสุดท้ายใน Java คือการผูกมัดก่อนหน้านี้ วิธีการอื่น ๆ ยกเว้นวิธีการคงที่และวิธีการสุดท้าย (ส่วนตัวเป็นของวิธีสุดท้าย) มีการเชื่อมโยงในภายหลังและสามารถกำหนดประเภทของวัตถุสำหรับการเชื่อมโยงระหว่างการรันไทม์ ขั้นตอนการตรวจสอบมีดังนี้:
การคัดลอกรหัสมีดังนี้:
ฐานชั้นเรียน
-
// ตัวแปรสมาชิก subclasses ยังมีชื่อตัวแปรสมาชิกเดียวกัน
การทดสอบสตริงสาธารณะ = "ฟิลด์ฐาน";
// วิธีการคงที่คลาสย่อยยังมีวิธีการคงที่ด้วยลายเซ็นเดียวกัน
โมฆะคงที่สาธารณะคงที่ staticMethod ()
-
System.out.println ("Base StaticMethod ()");
-
// subclasses จะแทนที่วิธีนี้
โมฆะสาธารณะ NotstaticMethod ()
-
System.out.println ("Base NotstaticMethod ()");
-
-
ชั้นเรียนสาธารณะได้ขยายฐาน
-
การทดสอบสตริงสาธารณะ = "ฟิลด์รับ";
โมฆะคงที่สาธารณะคงที่ staticMethod ()
-
System.out.println ("Derive StaticMethod ()");
-
@Override
โมฆะสาธารณะ NotstaticMethod ()
-
System.out.println ("หาไม่ได้ staticmethod ()");
-
// เอาต์พุตค่าของตัวแปรสมาชิกและตรวจสอบว่ามันเป็นผลผูกพันก่อนหน้า
Public Static Void Testfieldbind (ฐานฐาน)
-
System.out.println (base.test);
-
// วิธีการคงที่ตรวจสอบว่ามันเป็นผลผูกพันก่อนหน้า
Public Static Void TeststaticMethodbind (ฐานฐาน)
-
// การทดสอบวิธีการคงที่ () จากฐานประเภทควรเข้าถึงด้วยวิธีคงที่
// มันมีเหตุผลมากกว่าที่จะใช้ base.test ()
base.staticmethod ();
-
// โทรหาวิธีที่ไม่คงที่และตรวจสอบว่าพวกเขาอยู่ในช่วงล่าช้า
Public Static Void TestnotNetTaticMethodbind (ฐานฐาน)
-
base.notstaticmethod ();
-
โมฆะคงที่สาธารณะหลัก (สตริง [] args)
-
รับ d = new derive ();
testfieldbind (d);
TestStaticMethodbind (D);
TestNotNetStaticMethodbind (D);
-
-
/*เอาต์พุตโปรแกรม:
สนามฐาน
ฐาน StaticMethod ()
ได้รับ notstaticmethod ()
-