Összehasonlító diagramok
Az összehasonlítás alapja | kiterjeszti | munkagépek |
---|---|---|
Alapvető | A kiterjesztés kulcsszót egy alosztály létrehozására használják egy szuper osztály jellemzői segítségével. | Az eszközöket az interfész megvalósításához használják |
Mód | A kiterjesztés kulcsszó nem felülírhatja a szuper osztály összes módját. | A végrehajtó kulcsszónak egy implementált felület összes módját kell végrehajtania. |
Osztály | Egy osztály csak egy szuperosztályt nyújthat. | Egy osztály több interfészteret is megvalósíthat. |
Felület | Az interfész egynél több interfészt is kiterjeszthet. | Egy interfész nem képes végrehajtani egy másik interfészt. |
A kulcsszó kiterjesztése
Az öröklés, amely az objektumorientált programozás fontos eleme, akkor érhető el, ha egy alosztály egy másik szuperklasztot is kibővít. Egy alosztály csak egy szuperosztályt nyújthat. Egy osztály soha nem terjeszthet ki több szuperosztályt Java-ban. Amikor egy osztály kiterjeszti egy másik osztályt, felülbírálhatja a szuperosztályban meghatározott módszereket. Tegyük fel, hogy egy kulcsszó segítségével egy kulcsszó kiterjed.
A osztály {String s; A (sztring s1) {s = s1; } // a karakterlánc void kijelzése () {System.out.println (+ s); }} B osztály az A {String i; B (s1, String i1) {szuper (s1); i = i1; } void dispaly () {super.dispaly (); / * az A osztályú hívás (). * / System.out.println (+ i); }} class Override {public static void main (String args []) {B ob = new B (Tech, különbségek); ob.display (); / * B osztályú hívás * /}} / * ki * / Tech különbségek
A fenti kódban megfigyelhetjük, hogy a B osztály kiterjesztette az A osztályt, és felülbírálta az A. osztályban definiált metódust (). Hasonló módon egy interfész egyszerre több interfészt is kiterjeszthet. Mivel az interfésznek nem kell végrehajtania a kiterjesztett interfész semmilyen módját, ezért egyszerre több interfészt örökthet.
A végrehajtó kulcsszó meghatározása
A kulcsszóeszközök használatával az osztály örökli az összes módszert egy felületen. Amikor egy osztály egy interfészt hajt végre, az osztálynak végre kell hajtania a megvalósított interfész összes módját. Egy interfész soha nem valósíthat meg egy másik interfészt, mivel az eszköz kulcsszavai a módszerek megvalósítását ígérik, de egy interfész soha nem valósít meg módszereket benne, így lehetetlen, hogy egy interfész végrehajtson egy másik interfészt. Egy példán keresztül értsük meg a kulcsszavakat.
interfészláncok {void display (String s); } interfész egész szám {void show (int i); } osztály Demó végrehajtja a stringeket, egész {void show (int i) {System.Out.Println ("egész szám:" + i); } void display (String s) {System.Out.Println ("string érték:" + s); }} osztály Demo_main {public static void main (string args []) {Demo d = új demó (); d.display ( "TechDifferences"); d.show (2); }} / * kimenet * / TechDifferences 2
Ahogy a fenti kódban is látható, az osztály demó két interfészláncot és egész számot hajt végre, és végrehajtotta a megjelenített () és a megjelenítő () felületekben bejelentett módszereket.
Főbb különbségek a kiterjesztések és az eszközök között
- Egy osztály örökölhet egy másik osztályt, vagy egy interfész örököl más kapcsolódási pontokat egy kulcsszóval, míg egy osztály egy kulcsszóeszközöket használhat.
- Az alosztály, amely kiterjeszti a szuperosztályt, felülbírálhatja vagy nem felülírhatja a szuperklasszis összes módját. Másrészről egy interfészt megvalósító osztálynak meg kell határoznia / megvalósítani az interfész összes módját.
- Egy osztály egyszerre képes bármilyen számú interfészt megvalósítani. Másrészt, egy osztály csak egy szuperosztályt nyújthat.
- Egy interfész kiterjeszthet bármilyen számú interfészt, de az interfész soha nem valósíthat meg semmilyen más felületet, mivel a módszert és az interfészt meghatározó megvalósítási eszközöknek mindig absztrakt módszereik vannak, így az interfész soha nem valósíthat meg másik interfészt.
Következtetés:
Befejezem a beszélgetést, amely szerint az interfész megvalósítása rugalmasabbá teszi a kódot, mint egy osztály kiterjesztése. Mivel megakadályozza, hogy csak egy szuper osztály örökölhető legyen a Java-ban. Az alkalmazott kulcsszó segítségével az osztály egynél több interfész tulajdonságait örökölheti.