Binding kemudian mengacu pada pengikatan sesuai dengan jenis objek saat runtime, juga dikenal sebagai pengikatan dinamis atau ikatan runtime. Untuk mengimplementasikan ikatan yang terlambat, beberapa mekanisme harus didukung oleh ini sehingga jenis objek dapat dinilai saat runtime, dan overhead panggilan lebih besar dari ikatan sebelumnya.
Metode statis dan metode akhir dalam Java adalah binding awal. Metode lain kecuali metode statis dan metode akhir (pribadi termasuk dalam metode akhir) kemudian mengikat, dan dapat menentukan jenis objek untuk mengikat selama runtime. Prosedur verifikasi adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
basis kelas
{
// Variabel anggota, subkelas juga memiliki nama variabel anggota yang sama
tes string publik = "bidang dasar";
// Metode statis, subclass juga memiliki metode statis dengan tanda tangan yang sama
static staticmethod static public ()
{
System.out.println ("base staticmethod ()");
}
// Subkelas akan mengesampingkan metode ini
public void notstaticmethod ()
{
System.out.println ("base notstaticmethod ()");
}
}
Kelas Publik Turunkan Basis Extends
{
tes string publik = "DESTIVE FIELD";
static staticmethod static public ()
{
System.out.println ("Turunkan staticmethod ()");
}
@Mengesampingkan
public void notstaticmethod ()
{
System.out.println ("Turunkan notstaticmethod ()");
}
// output nilai variabel anggota dan verifikasi bahwa itu adalah ikatan sebelumnya.
public static void testfieldbind (base base)
{
System.out.println (base.test);
}
// Metode statis, verifikasi bahwa itu adalah ikatan sebelumnya.
public static void teststaticmethodbind (basis basis)
{
// uji metode statis () dari basis jenis harus diakses dengan cara statis
// Lebih masuk akal untuk menggunakan base.test (). Representasi ini digunakan di sini untuk secara lebih intuitif menampilkan ikatan awal.
base.staticmethod ();
}
// Panggil metode non-statis dan verifikasi bahwa mereka terlambat mengikat.
public static void testnotstaticmethodbind (basis basis)
{
base.notstaticmethod ();
}
public static void main (string [] args)
{
Turunkan d = Derive baru ();
testfieldbind (d);
teststaticmethodbind (d);
testnotstaticmethodbind (d);
}
}
/*Output program:
Bidang dasar
Dasar staticmethod ()
Turunkan notstaticmethod ()
*/