Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi rozširuje a implementuje kľúčové slová v jazyku Java

Kľúčové slová sa rozširujú a implementácie sa používajú na zdedenie funkcií už existujúceho nadradeného bloku v novovytvorenom podriadenom bloku. Pomocou rozšíreného kľúčového slova môže novo vytvorená trieda (podtrieda) zdediť funkcie existujúcej triedy (superclass). Pomocou kľúčových slov implementuje novovytvorená trieda implementáciu všetkých metód rozhrania. Hlavný rozdiel medzi kľúčovými slovami sa rozširuje a implementuje je, že trieda rozširuje ďalšiu triedu, aby zdedila všetky jej členov, zatiaľ čo trieda implementuje rozhranie na zdedenie všetkých metód a ich implementáciu podľa jej požiadaviek. Existujú aj niektoré ďalšie rozdiely medzi rozšírenými kľúčovými slovami a implementáciami popísanými v porovnávacom grafe zobrazenom nižšie.

Porovnávacie grafy

Základ pre porovnanierozširujenáradie
základnéRozšírené kľúčové slovo sa používa na vytvorenie podtriedy pomocou funkcií superkategórie.Kľúčové slovo implements sa používa na implementáciu rozhrania
metódyRozšírené kľúčové slovo nemusí prekonať všetky metódy superkategórie.Kľúčové slovo implements musí implementovať všetky metódy implementovaného rozhrania.
TriedaTrieda môže rozšíriť iba jednu super triedu.Trieda môže implementovať viacero interakcií.
RozhranieRozhranie môže rozšíriť viac ako jedno rozhranie.Rozhranie nemôže implementovať iné rozhranie.

Definícia rozšírenia kľúčového slova

Dedičstvo, ktoré je dôležitým konceptom v objektovo orientovanom programovaní, sa dosiahne, ak podtrieda rozširuje inú nadtriedu. Podtrieda môže rozšíriť iba jednu nadtriedu. Trieda nikdy nemôže rozšíriť viac ako jednu super triedu v jazyku Java. Keď trieda rozširuje inú triedu, môže predísť metódam definovaným v nadradenej triede. Chápeme, že kľúčové slovo sa rozširuje pomocou príkladu.

 trieda A {String s; A (reťazec s1) {s = s1; } // zobrazenie reťazca void display () {System.out.println (+ s); }} trieda B rozširuje A {String i; B (reťazec s1, reťazec i1) {super (s1); i = i1; } prázdny dispaly () {super.dispaly (); / * zobrazenie () triedy A vyvolané. * / System.out.println (+ i); }} class Override {public static void main (String args []) {B ob = nový B (Tech, Rozdiely); ob.display (); / * zobrazenie triedy B vyvolané * /}} / * out put * / Tech Differences 

Vo vyššie uvedenom kóde môžete pozorovať, že trieda B má rozšírenú triedu A a má prepísané zobrazenie metódy () definované v triede A. Podobným spôsobom môže rozhranie rozšíriť viac ako jedno rozhranie naraz. Ako rozhranie nemusíte implementovať žiadnu metódu rozšíreného rozhrania, je teda možné zdediť viacero rozhraní naraz.

Definícia kľúčového slova implementuje

Použitím kľúčového slova implementuje trieda dedičstvo všetkých metód v rozhraní. Keď trieda implementuje rozhranie, táto trieda musí implementovať všetky metódy implementovaného rozhrania. Rozhranie nemôže nikdy implementovať iné rozhranie, pretože implements kľúčové slová sľubuje implementáciu metód, ale rozhranie nikdy implementuje metódy v ňom, takže nie je možné, aby rozhranie implementovalo iné rozhranie. Chápeme, že implementuje kľúčové slovo pomocou príkladu.

 reťazce rozhrania {void display (reťazec s); } integer rozhranie {void show (int i); } class Demo implementuje reťazce, integer {void show (int i) {System.Out.Println ("celočíselná hodnota:" + i); } void display (reťazec s) {System.Out.Println ("hodnota reťazca:" + s); }} trieda Demo_main {public static void main (reťazec args []) {Demo d = new Demo (); d.display ( "TechDifferences"); d.show (2); }} / * výstup * / TechDifferencie 2 

Rovnako ako v predchádzajúcom kóde môžete vidieť, že demo triedy implementuje dva reťazce a celé číslo rozhrania a zaviedlo metódy deklarované v oboch rozhraniach, ktoré sú zobrazené () a show ().

Kľúčové rozdiely Medzi rozširujú a implementujú

  1. Trieda môže dediť ďalšiu triedu alebo rozhranie zdedí iné rozhrania pomocou kľúčového slova sa rozširuje, zatiaľ čo trieda môže implementovať rozhranie pomocou kľúčového slova implements.
  2. Podtrieda, ktorá rozširuje nadradenú vrstvu, môže alebo nemusí mať vplyv na všetky metódy v nadradenej triede. Na druhej strane trieda implementujúca rozhranie musí definovať / implementovať všetky metódy tohto rozhrania.
  3. Trieda môže implementovať ľubovoľný počet rozhraní súčasne. Na druhej strane trieda môže rozšíriť iba jednu super triedu.
  4. Rozhranie môže rozšíriť ľubovoľný počet rozhraní, ale rozhranie nikdy nemôže implementovať žiadne iné rozhranie, pretože implementačné prostriedky definujúce metódy a rozhranie majú vždy abstraktné metódy, takže rozhranie nikdy nemôže implementovať iné rozhranie.

záver:

Záverom diskusie som povedal, že implementácia rozhrania spôsobuje, že kód je flexibilnejší než rozšírenie triedy. Tým sa zabráni obmedzeniu dedenia iba jednej superkategórie v jazyku Java. Pomocou kľúčových slov implementuje kľúčové slovo trieda, ktorá môže zdediť funkcie viacerých rozhraní.

Top