Bagaimana Cara Menggunakan Dynamic Binding di Java?

Bagaimana Cara Menggunakan Dynamic Binding Di Java



pengikatan dinamis ” memungkinkan perilaku polimorfik, di mana pemanggilan metode objek ditentukan saat runtime berdasarkan tipe objek sebenarnya, bukan tipe referensi. Ini mempromosikan penggunaan kembali kode dengan memungkinkan subclass untuk menimpa dan menyediakan penerapan metode yang ditentukan dalam kelas induk.

Blog ini menunjukkan penggunaan dan penerapan pengikatan dinamis di Jawa.

Bagaimana Cara Menggunakan Dynamic Binding di Java?

Pengikatan dinamis memungkinkan penggabungan longgar antar objek. Ini membantu dalam perluasan fungsionalitas yang mudah dengan menambahkan subkelas baru yang menggantikan metode tanpa mengubah kode yang ada. Pengikatan dinamis banyak digunakan untuk pengiriman runtime, penanganan acara, atau sistem plugin.







Mari kita telusuri beberapa contoh untuk penjelasan terperinci:



Contoh 1: Menerapkan Dynamic Binding



Dengan menggunakan pengikatan dinamis, pemrogram dapat mengizinkan pengguna untuk menyesuaikan dan mengesampingkan perilaku default untuk membuat aplikasi yang dapat disesuaikan. Untuk implementasi praktis, mari kita telusuri sebuah contoh:





import java.util.Arrays;
impor java.util.HashSet;
impor java.util.List;
impor java.util.Set;

DynBind kelas publik {
public void utama statis ( Rangkaian [ ] argumen ) {
Game gameType1 = Cricket baru ( ) ;
Game gameType2 = CallofDuty baru ( ) ;
gameType1.gameType ( ) ;
gameType2.gameType ( ) ;
}
}
game kelas {
gameType kekosongan publik ( ) {
System.out.println ( 'Game Fisik atau Virtual' ) ;
}
}
kelas Cricket memperluas Gaming {
@ Mengesampingkan
gameType kekosongan publik ( ) {
System.out.println ( 'Kriket adalah Permainan Fisik' ) ;
}
}
kelas CallofDuty memperluas Permainan {
@ Mengesampingkan
gameType kekosongan publik ( ) {
System.out.println ( 'CallofDuty adalah Game Virtual' ) ;
}
}

Penjelasan dari kode di atas:



  • Pertama, kelas “ DynBind ” dibuat, dan dua objek bertipe “ Game ” dinyatakan.
  • Selanjutnya, objek-objek ini diinisialisasi dengan “ Jangkrik ' Dan ' Panggilan tugas ” objek, inisialisasi ini menunjukkan pengikatan dinamis. Jenis referensi adalah “ Game ” tetapi tipe objek sebenarnya adalah “ Jangkrik ' Dan ' Panggilan tugas ”, masing-masing.
  • Sekarang, objek-objek ini digunakan untuk memanggil ' tipe permainan() ” berfungsi dengan mengganti fungsi di kelas anak.
  • Lalu, orang tua “ Game ” kelas dideklarasikan yang membuat dan menginisialisasi “ tipe permainan() ”, yang mencetak pesan teks dummy.
  • Selanjutnya dibuat dua kelas anak dengan nama “ Jangkrik ' Dan ' Panggilan tugas ”. Kelas-kelas ini diwarisi dari induk “ Game ' kelas.
  • Setelah itu, “ @Mengesampingkan ' anotasi digunakan untuk menimpa induk ' Game ” metode kelas bernama “ tipe permainan() ”.
  • Pada akhirnya, pesan tiruan yang berbeda ditampilkan di kedua metode penggantian kelas anak.

Setelah akhir fase eksekusi:

Output menampilkan bahwa pesan tiruan dari kelas anak ditampilkan di konsol menggunakan pengikatan dinamis.

Contoh 2: Menerapkan Warisan Multilevel

Pengikatan dinamis juga dapat diterapkan untuk pembuatan pewarisan bertingkat. Dua blok kode dari program yang sama seperti yang ditunjukkan di bawah ini:

game kelas {
gameType kekosongan publik ( ) {
System.out.println ( 'Game Fisik atau Virtual' ) ;
}
}
kelas Cricket memperluas Gaming {
@ Mengesampingkan
gameType kekosongan publik ( ) {
System.out.println ( 'Kriket adalah Permainan Fisik' ) ;
}
public void playingFormat ( ) {
System.out.println ( 'Kriket memiliki format permainan yang berbeda' ) ;
}
}
kelas CallofDuty memperluas Permainan {
@ Mengesampingkan
gameType kekosongan publik ( ) {
System.out.println ( 'CallofDuty adalah Game Virtual' ) ;
}
gameMode kekosongan publik ( ) {
System.out.println ( 'CallofDuty memiliki beberapa mode permainan' ) ;
}
}
CricketGame kelas memperluas Cricket {
gameMode kekosongan publik ( ) {
System.out.println ( 'Cricket memiliki mode permainan tunggal' ) ;
}
}
kelas CallofDutyGame memperluas CallofDuty {
}

Penjelasan dari kode di atas:

  • Pertama, orang tua “ Game ' kelas dibuat dan itu termasuk ' tipe permainan() ” yang berisi pesan dummy.
  • Selanjutnya, dua kelas anak bernama “ Jangkrik ' Dan ' Panggilan tugas ” dibuat, keduanya menimpa fungsi kelas induk bernama “ tipe permainan() ”.
  • Kelas-kelas ini berisi satu fungsi tambahan bernama “ formatbermain() ' Dan ' modus permainan() ” fungsi, masing-masing.
  • Kemudian, buat anak multi-level bernama “ Game Kriket ” yang dilontarkan oleh anak “ Jangkrik ' kelas. Ini berisi ' modus permainan() ” yang diganti oleh induknya “ Jangkrik ' kelas.
  • Setelah itu, “ Game Panggilan Tugas ” kelas dibuat sebagai anak untuk “ Panggilan tugas ' kelas. Ini menciptakan warisan bertingkat dan untuk mengaktifkan fungsionalitas pengikatan dinamis.

Sekarang, masukkan “ utama() ' metode:

DynBind kelas publik {
public void utama statis ( Rangkaian [ ] argumen ) {
Game Panggilan Tugas codg = Game Panggilan Tugas baru ( ) ;
codg.gameType ( ) ;
codg.gameMode ( ) ;

Game Kriket crig = Game Cricket baru ( ) ;
cricg.gameType ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

Penjelasan dari kode di atas:

  • Pertama, objek dari “ Game Panggilan Tugas ” kelas dibuat yang memanggil fungsi dari kelas induknya.
  • Dengan cara yang sama, “ Game Kriket ” objek dideklarasikan yang memanggil fungsi kelas induknya yang tersedia di multilevel dalam hierarki.

Setelah akhir fase eksekusi:

Outputnya menunjukkan bahwa pewarisan bertingkat dibuat menggunakan pengikatan dinamis di Jawa.

Kesimpulan

Di Jawa, “ pengikatan dinamis ” menawarkan manfaat seperti polimorfisme, penggunaan kembali kode, fleksibilitas, dan ekstensibilitas. Ini diimplementasikan dengan mengikuti aturan pewarisan, metode overriding, dan upcasting. Pengikatan dinamis juga mengaktifkan fungsi runtime dan meningkatkan perilaku fleksibel dan polimorfik dalam konsep OOP. Itu semua tentang penggunaan dan implementasi pengikatan dinamis di Jawa.