Különbség az osztály és az interfész között a Java-ban

Szerző: Laura McKinney
A Teremtés Dátuma: 2 Április 2021
Frissítés Dátuma: 2 Lehet 2024
Anonim
Különbség az osztály és az interfész között a Java-ban - Technológia
Különbség az osztály és az interfész között a Java-ban - Technológia

Tartalom


Az osztály és az interfész egyaránt új referencia-típusok létrehozására szolgál. Az osztály olyan mezők és módszerek gyűjteménye, amelyek a mezőkön működnek. Az interfész teljesen absztrakt módszereket alkalmaz, azaz módszereket senkivel. Az interfész szintaktikailag hasonló az osztályhoz, de nagy különbség van az osztály és az interfész között, amely egy osztály realizálható, de az interfész soha nem váltható ki. Tehát tanulmányozzunk még néhány különbséget az osztály és az interfész között az alább bemutatott összehasonlító táblázat segítségével.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjaOsztályFelület
AlapvetőObjektumok létrehozásához egy osztály kerül pillanatra.Az interfész soha nem váltható ki, mivel a módszerek semmilyen műveletet nem tudnak végrehajtani a meghíváskor.
Kulcsszóosztályfelület
Hozzáférés-meghatározóAz osztály tagjai lehetnek magán, állami vagy védett.Az interfész tagjai mindig nyilvánosak.
Mód Az osztály módszereit egy adott művelet végrehajtására határozzák meg.Az interfészekben alkalmazott módszerek tisztán absztraktak.
Végrehajtja / ExtendEgy osztály tetszőleges számú felületet valósíthat meg, és csak egy osztályt bővíthet.Az interfész több interfészt kiterjeszthet, de egyetlen interfészt sem valósíthat meg.
Konstruktőr Egy osztály konstruktorokkal rendelkezhet a változók inicializálására.Az interfésznek soha nem lehet konstruktora, mivel alig van olyan változó, amely inicializálhatja.


Az osztály meghatározása

Az osztály a Java programozás legfontosabb szempontja, hogy osztályok nélkül nem tudsz Java programot végrehajtani. Egy osztály referencia-típusokat hoz létre, és ezeket a referencia-típusokat objektumok létrehozására használják. Az osztálynak van aláírása és teste. Az osztály aláírása tartalmazza az osztály nevét és információit, amely megmutatja, hogy az osztály örökölt-e egy másik osztályt. Az osztály testének mezői és módszerei vannak, amelyek ezeken a területeken működnek. Osztályt hoz létre egy kulcsszó segítségével osztály. Lehetővé teszi, hogy megtudjuk, hogyan kell osztályt nyilvánítani.

osztály osztály_neve {/ * mezők ... módszerek * /}

Amikor egy osztályt megvalósítunk, minden létrehozott objektum tartalmazza a mezők és módszerek másolatát. Az osztályon belül deklarált mezők és tagok lehetnek statikusak vagy nem statikusak. A statikus tagok értéke minden objektumnál állandó, míg a nem statikus tagokat az objektumok külön-külön inicializálják, az igényeknek megfelelően.


Az osztály tagjai hozzáférési meghatározókkal rendelkeznek, amelyek meghatározzák a tagok láthatóságát és elérhetőségét a felhasználó vagy az alosztályok számára. A hozzáférés-meghatározók nyilvános, magán és védett. Az osztályt egy másik osztály örökölheti a hozzáférési specifikátor használatával, amely meghatározza az alosztály (öröklő osztály) szuperosztály (öröklött osztály) tagjai láthatóságát. Így az osztály teljesíti az adatok elrejtésének és beillesztésének az objektumorientált programozás koncepcióját.

Az interfész meghatározása

Az interfész szintén szerepel a Java-ban meghatározott referenciatípusok között. Az interfész fontossága az, hogy a Java-ban az osztály csak egyetlen osztályt örökölhet. E korlátozás elkerülése érdekében a Java tervezői bevezettek egy interfész fogalmát. Az interfész szintaktikailag hasonló egy osztályhoz, de hiányzik a mezőbevallás, és az interfészen belüli módszereknek nincs megvalósítása. Az interfész kulcsszó használatával deklarálódik felület. Nézzük meg az interfész nyilatkozatát.

felület felület_neve {típus var_name = érték; type1 módszer (paraméter-lista); type2 módszer (paraméter-lista); . . }

Az interfész nem határoz meg egyetlen benne deklarált módszert sem, mivel hiányoznak a működtetéséhez szükséges mezők. Csak azért, mert egy interfészen belüli bármely módszer nem hajt végre semmilyen műveletet, a felületet soha nem lehet azonnal megvalósítani. Ha egy interfész rendelkezik bármely mezőtaggal, akkor azt deklaráláskor inicializálni kell. Az interfész soha nem tartalmaz konstruktorokat, mivel hiányzik a terepi tagok az inicializáláshoz. Tehát egy interfész csak azt határozza meg, hogy az osztálynak mit kell tennie, ahelyett, hogyan kell tennie.

A létrehozott interfészt tetszőleges számú osztály valósíthatja meg kulcsszó használatával munkagépek. De az interfészt megvalósító osztályoknak meg kell határozniuk az interfészen belüli összes módszert. Az interfész egy másik interfészt is örökölhet a használatával kiterjesztése kulcsszó. Ha egy osztály olyan felületet valósít meg, amely kiterjeszt egy másik felületet. Ezután az osztálynak meg kell határoznia a láncban megjelenő mindkét interfész módszerét. Az interfészen belüli módszereknek mindig nyilvánosaknak kell lenniük, mivel a végrehajtó osztályoknak hozzáférniük kell hozzájuk.

Főbb különbségek az osztály és az interfész között a Java-ban

  1. Egy osztály az objektumok létrehozásával azonnal megvalósítható. Az interfész soha nem kerül megvalósításra, mivel az interfészen belül deklarált módszerek elvontak és nem hajtanak végre semmilyen műveletet, tehát egyetlen interfész sem regenerálható.
  2. Az osztályt egy kulcsszó osztály használatával deklarálják. Ugyanígy, felület jön létre a kulcsszó felület használatával.
  3. Az osztály tagjai hozzáférési specifikációval rendelkezhetnek, például nyilvános, magán, védett. De egy interfész tagjai mindig nyilvánosak, mivel a végrehajtó osztályoknak hozzáférniük kell hozzájuk.
  4. Az osztályon belüli módszerek úgy vannak definiálva, hogy műveletet hajthassanak végre az osztályban deklarált mezőkön. Mivel az interfész hiányzik a mezők deklarálásában, az interfészen belüli módszerek tisztán elvont jellegűek.
  5. Egy osztály tetszőleges számú felületet valósíthat meg, de csak egy szuper osztályt bővíthet. Az interfész tetszőleges számú interfészt kiterjeszthet, de egyetlen interfészt sem valósíthat meg.
  6. Egy osztályban építők vannak meghatározva, amelyek a változó inicializálásához szükségesek. De az interfésznek nincs konstruktora, mivel nincs inicializálható mező. Az interfész mezőit csak a deklaráláskor inicializálják.

Következtetés:

Mind az osztályoknak, mind az interfészeknek saját jelentőségük van. Az osztály akkor használatos, amikor meg kell határoznunk a feladat végrehajtásának módját. Egy felületet akkor használunk, amikor tudnunk kell, hogy mi a feladat.