Kuidas Javas dünaamilist sidumist kasutada?

Kuidas Javas Dunaamilist Sidumist Kasutada



' dünaamiline sidumine ” võimaldab polümorfset käitumist, kus objekti meetodi kutsumine määratakse käitusajal objekti tegeliku tüübi, mitte võrdlustüübi alusel. See soodustab koodi korduvkasutatavust, võimaldades alamklassidel alistada ja pakkuda nende rakendamist põhiklassis määratletud meetodite kohta.

See ajaveeb demonstreerib dünaamilise sidumise kasutamist ja rakendamist Javas.

Kuidas Javas dünaamilist sidumist kasutada?

Dünaamiline sidumine võimaldab objektide vahel lahti ühendada. See aitab funktsionaalsust hõlpsalt laiendada, lisades uusi alamklasse, mis alistavad meetodid olemasolevat koodi muutmata. Dünaamilist sidumist kasutatakse laialdaselt käitusaja saatmiseks, sündmuste haldamiseks või pistikprogrammide süsteemides.







Vaatame üksikasjaliku selgituse saamiseks läbi paar näidet:



Näide 1: Dünaamilise sidumise rakendamine



Dünaamilise sidumise abil saavad programmeerijad lubada kasutajatel kohandatavate rakenduste loomiseks kohandada ja alistada vaikekäitumist. Praktilise rakendamise jaoks vaatame läbi näite:





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

avalik klass DynBind {
avalik static void main ( String [ ] args ) {
Mängumängutüüp1 = uus kriket ( ) ;
MängumängType2 = uus CallofDuty ( ) ;
gameType1.gameType ( ) ;
gameType2.gameType ( ) ;
}
}
klass Mängimine {
avalik tühine mängutüüp ( ) {
System.out.println ( 'Füüsilised või virtuaalsed mängud' ) ;
}
}
klass Cricket laiendab Mängu {
@ Alistada
avalik tühine mängutüüp ( ) {
System.out.println ( 'Krkett on füüsiline mäng' ) ;
}
}
klassi CallofDuty laiendab Gaming {
@ Alistada
avalik tühine mängutüüp ( ) {
System.out.println ( 'CallofDuty on virtuaalne mäng' ) ;
}
}

Ülaltoodud koodi selgitus:



  • Esiteks, klass ' DynBind ' on loodud ja kaks objekti tüüpi ' Mängimine ” kuulutatakse välja.
  • Järgmisena lähtestatakse need objektid uuega Kriket ” ja „ CallofDuty ” objektid, näitab see lähtestamine dünaamilist sidumist. Viite tüüp on ' Mängimine ', kuid tegelikud objektitüübid on ' Kriket ” ja „ CallofDuty ”, vastavalt.
  • Nüüd kasutatakse neid objekte ' mängutüüp() ” funktsioonid, alistades funktsiooni alamklassides.
  • Siis vanem ' Mängimine ' klass on deklareeritud, mis loob ja initsialiseerib ' mängutüüp() ” funktsioon, mis prindib näiva tekstisõnumi.
  • Järgmisena luuakse kaks lasteklassi nimega ' Kriket ” ja „ CallofDuty ”. Need klassid on päritud vanemalt ' Mängimine ” klass.
  • Pärast seda ' @Alista ' annotatsiooni kasutatakse vanema alistamiseks ' Mängimine ' klassi meetodid nimega ' mängutüüp() ”.
  • Lõpuks kuvatakse mõlema alamklassi alistatud meetodi puhul erinev näiv teade.

Pärast täitmisfaasi lõppu:

Väljund näitab, et alamklasside näivaid teateid kuvatakse konsoolil dünaamilise sidumise abil.

Näide 2: Mitmetasandilise pärimise rakendamine

Dünaamilist sidumist saab rakendada ka mitmetasandilise pärandi loomiseks. Kaks sama programmi koodiplokki, nagu allpool näidatud:

klass Mängimine {
avalik tühine mängutüüp ( ) {
System.out.println ( 'Füüsilised või virtuaalsed mängud' ) ;
}
}
klass Cricket laiendab Mängu {
@ Alistada
avalik tühine mängutüüp ( ) {
System.out.println ( 'Krkett on füüsiline mäng' ) ;
}
avalik tühine esitusvorming ( ) {
System.out.println ( 'Kriketil on erinevad mänguvormingud' ) ;
}
}
klassi CallofDuty laiendab Gaming {
@ Alistada
avalik tühine mängutüüp ( ) {
System.out.println ( 'CallofDuty on virtuaalne mäng' ) ;
}
avalik tühine mängurežiim ( ) {
System.out.println ( 'CallofDuty'l on mitu mängurežiimi' ) ;
}
}
klassi CricketGame laiendab Cricketit {
avalik tühine mängurežiim ( ) {
System.out.println ( 'Kriketil on ühe mängu režiim' ) ;
}
}
klassi CallofDutyGame laiendab CallofDuty {
}

Ülaltoodud koodi selgitus:

  • Esiteks, vanem ' Mängimine ' klass on loodud ja see sisaldab ' mängutüüp() ” funktsioon, mis sisaldab näivat teadet.
  • Järgmisena kaks lasteklassi nimega ' Kriket ” ja „ CallofDuty ' on loodud, mõlemad alistavad vanemklassi funktsiooni nimega ' mängutüüp() ”.
  • Need klassid sisaldavad ühte lisafunktsiooni nimega ' playFormat() ” ja „ mängurežiim () ” funktsioone vastavalt.
  • Seejärel looge mitmetasandiline laps nimega ' Kriketimäng 'mida pikendab laps' Kriket ” klass. See sisaldab ' mängurežiim () funktsioon, mille ülem on tühistanud Kriket ” klass.
  • Pärast seda ' CallofDutyGame ” klass on loodud lapsena CallofDuty ” klass. See loob mitmetasandilise pärandi ja võimaldab dünaamilise sidumise funktsionaalsust.

Nüüd sisestage ' peamine () ” meetod:

avalik klass DynBind {
avalik static void main ( String [ ] args ) {
CallofDutyGame codg = uus CallofDutyGame ( ) ;
codg.gameType ( ) ;
codg.gameMode ( ) ;

Kriketimäng cricg = uus kriketimäng ( ) ;
cricg.gameType ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

Ülaltoodud koodi selgitus:

  • Esiteks objekt ' CallofDutyGame ” luuakse klass, mis kutsub välja oma ülemklasside funktsioone.
  • Samal viisil ' Kriketimäng ” deklareeritakse objekt, mis kutsub esile oma põhiklassi funktsiooni, mis on saadaval hierarhias mitmel tasandil.

Pärast täitmisfaasi lõppu:

Väljund näitab, et mitmetasandiline pärand luuakse Java dünaamilise sidumise abil.

Järeldus

Javas on ' dünaamiline sidumine ” pakub selliseid eeliseid nagu polümorfism, koodi korduvkasutatavus, paindlikkus ja laiendatavus. Seda rakendatakse pärimisreeglite, meetodi alistamise ja üleslaadimise järgimisega. Dünaamiline sidumine võimaldab ka käitusfunktsioone ning suurendab paindlikku ja polümorfset käitumist OOP-ide kontseptsioonis. See kõik puudutab Java dünaamilise sidumise kasutamist ja rakendamist.