Kā izmantot dinamisko saistīšanu Java?

Ka Izmantot Dinamisko Saistisanu Java



' dinamiska iesiešana ” pieļauj polimorfu uzvedību, kur objekta metodes izsaukšana tiek noteikta izpildes laikā, pamatojoties uz faktisko objekta veidu, nevis atsauces veidu. Tas veicina koda atkārtotu izmantošanu, ļaujot apakšklasēm ignorēt un nodrošināt to metožu ieviešanu, kas definētas vecāku klasē.

Šis emuārs parāda dinamiskās saistīšanas izmantošanu un ieviešanu Java.

Kā izmantot dinamisko saistīšanu Java?

Dinamiskā iesiešana nodrošina brīvu savienojumu starp objektiem. Tas palīdz viegli paplašināt funkcionalitāti, pievienojot jaunas apakšklases, kas ignorē metodes, nemainot esošo kodu. Dinamiskā saistīšana tiek plaši izmantota izpildlaika nosūtīšanai, notikumu apstrādei vai spraudņu sistēmām.







Lai iegūtu detalizētu skaidrojumu, apskatīsim dažus piemērus:



1. piemērs. Dinamiskās saistīšanas ieviešana



Izmantojot dinamisko saistīšanu, programmētāji var ļaut lietotājiem pielāgot un ignorēt noklusējuma darbības, lai izveidotu pielāgojamas lietojumprogrammas. Praktiskai īstenošanai apskatīsim piemēru:





importēt java.util.Arrays;
importēt java.util.HashSet;
importēt java.util.List;
importēt java.util.Set;

publiskās klases DynBind {
publisks statisks tukšums galvenais ( Stīga [ ] args ) {
Spēļu spēleType1 = jauns krikets ( ) ;
Spēļu spēleType2 = jauns CallofDuty ( ) ;
gameType1.gameType ( ) ;
gameType2.gameType ( ) ;
}
}
klase Spēles {
publisks spēkā esamības spēles veids ( ) {
System.out.println ( 'Fiziskās vai virtuālās spēles' ) ;
}
}
klase Krikets paplašina Gaming {
@ Ignorēt
publisks spēkā esamības spēles veids ( ) {
System.out.println ( 'Krikets ir fiziska spēle' ) ;
}
}
klase CallofDuty paplašina Gaming {
@ Ignorēt
publisks spēkā esamības spēles veids ( ) {
System.out.println ( 'CallofDuty ir virtuāla spēle' ) ;
}
}

Iepriekš minētā koda skaidrojums:



  • Pirmkārt, klase ' DynBind tiek izveidots un divi objekti, kuru tips ir “ Spēles ” ir deklarēti.
  • Pēc tam šie objekti tiek inicializēti ar jaunu ' Krikets ' un ' CallofDuty ” objektus, šī inicializācija parāda dinamisko saistīšanu. Atsauces veids ir ' Spēles ', bet faktiskie objektu veidi ir ' Krikets ' un ' CallofDuty ”, attiecīgi.
  • Tagad šie objekti tiek izmantoti, lai izsauktu ' spēles veids() ” funkcijas, ignorējot funkciju bērnu klasēs.
  • Tad vecāks ' Spēles tiek deklarēta klase, kas izveido un inicializē spēles veids() ” funkcija, kas izdrukā fiktīvu īsziņu.
  • Pēc tam tiek izveidotas divas bērnu klases ar nosaukumu “ Krikets ' un ' CallofDuty ”. Šīs klases ir mantotas no vecākiem ' Spēles ” klase.
  • Pēc tam ' @Override ' anotācija tiek izmantota, lai ignorētu vecāku' Spēles 'klases metodes ar nosaukumu ' spēles veids() ”.
  • Galu galā abās bērnklases ignorētajās metodēs tiek parādīts cits fiktīvs ziņojums.

Pēc izpildes posma beigām:

Izvade parāda, ka bērnu klašu fiktīvie ziņojumi tiek parādīti konsolē, izmantojot dinamisko saistīšanu.

2. piemērs. Daudzlīmeņu mantojuma ieviešana

Dinamiskā saistīšana var tikt ieviesta arī daudzlīmeņu mantojuma izveidei. Divi vienas programmas koda bloki, kā parādīts zemāk:

klase Spēles {
publisks spēkā esamības spēles veids ( ) {
System.out.println ( 'Fiziskās vai virtuālās spēles' ) ;
}
}
klase Krikets paplašina Gaming {
@ Ignorēt
publisks spēkā esamības spēles veids ( ) {
System.out.println ( 'Krikets ir fiziska spēle' ) ;
}
public Void atskaņošanas formāts ( ) {
System.out.println ( 'Kriketam ir dažādi spēles formāti' ) ;
}
}
klase CallofDuty paplašina Gaming {
@ Ignorēt
publisks spēkā esamības spēles veids ( ) {
System.out.println ( 'CallofDuty ir virtuāla spēle' ) ;
}
publisks spēkā esamības spēles režīms ( ) {
System.out.println ( 'CallofDuty ir vairāki spēles režīmi' ) ;
}
}
klases CricketGame paplašina Cricket {
publisks spēkā esamības spēles režīms ( ) {
System.out.println ( 'Kriketam ir vienas spēles režīms' ) ;
}
}
klases CallofDutyGame paplašina CallofDuty {
}

Iepriekš minētā koda skaidrojums:

  • Pirmkārt, vecāks ' Spēles klase ir izveidota, un tajā ir iekļauta spēles veids() ” funkcija, kas satur fiktīvu ziņojumu.
  • Tālāk divas bērnu klases ar nosaukumu “ Krikets ' un ' CallofDuty tiek izveidoti, abi ignorējot vecāku klases funkciju ar nosaukumu ' spēles veids() ”.
  • Šajās klasēs ir viena papildu funkcija ar nosaukumu ' playFormat() ' un ' spēles režīms () ” funkcijas, attiecīgi.
  • Pēc tam izveidojiet daudzlīmeņu bērnu ar nosaukumu “ Kriketa spēle 'kuru pagarina bērns' Krikets ” klase. Tas satur ' spēles režīms () 'funkcija, kuru ignorē tās vecākais' Krikets ” klase.
  • Pēc tam ' CallofDutyGame ” klase ir izveidota kā bērns priekš “ CallofDuty ” klase. Tas rada daudzlīmeņu mantojumu un nodrošina dinamiskās iesiešanas funkcionalitāti.

Tagad ievietojiet ' galvenais () ” metode:

publiskās klases DynBind {
publisks statisks tukšums galvenais ( Stīga [ ] args ) {
CallofDutyGame codg = jauns CallofDutyGame ( ) ;
codg.gameType ( ) ;
codg.gameMode ( ) ;

Kriketa spēle cricg = jauna kriketa spēle ( ) ;
cricg.gameType ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

Iepriekš minētā koda skaidrojums:

  • Pirmkārt, objekts ' CallofDutyGame ” tiek izveidota klase, kas izsauc savu vecāku klašu funkcijas.
  • Tādā pašā veidā ' Kriketa spēle ” tiek deklarēts objekts, kas izsauc savu vecākklases funkciju, kas ir pieejama vairākos hierarhijas līmeņos.

Pēc izpildes posma beigām:

Izvade parāda, ka daudzlīmeņu mantojums tiek izveidots, izmantojot Java dinamisko saistīšanu.

Secinājums

Java valodā “ dinamiska iesiešana ” piedāvā tādas priekšrocības kā polimorfisms, koda atkārtota izmantošana, elastība un paplašināmība. Tas tiek ieviests, ievērojot mantošanas noteikumus, metodes ignorēšanu un augšuplādes noteikumus. Dinamiskā saistīšana nodrošina arī izpildlaika funkcijas un uzlabo elastīgu un polimorfu uzvedību OOP koncepcijā. Tas viss attiecas uz dinamiskās saistīšanas izmantošanu un ieviešanu Java.