Ajánlott, 2024

Szerkesztő Választása

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

Az osztály és az interfész mindkettőt új referenciatípusok létrehozására használják. Egy osztály olyan mezők és módszerek gyűjteménye, amelyek a mezőkön működnek. Az interfész teljesen elvont módszerekkel rendelkezik, azaz senkivel nem. Egy interfész szintaktikailag hasonlít az osztályhoz, de van egy nagy különbség az osztály és az interfész között, amely osztályozható, de az interfész soha nem lesz azonnal elérhető. Az alábbiakban bemutatott összehasonlító táblázat segítségével tanuljunk meg még egy különbséget az osztály és a felület között.

Összehasonlító táblázat

Az összehasonlítás alapjaOsztályFelület
AlapvetőEgy osztály létrehozásra kerül az objektumok létrehozásához.Az interfész soha nem nyújtható be, mivel a módszerek nem képesek semmilyen műveletet végrehajtani.
Kulcsszóosztályfelület
Hozzáférési specifikációAz osztály tagjai lehetnek magán, nyilvánosak vagy védettek.Az interfész tagjai mindig nyilvánosak.
MódEgy osztály módszerei meghatározott művelet végrehajtására kerülnek meghatározásra.A kezelőfelület módszerei pusztán elvontak.
Végrehajtja / ExtendAz osztály bármilyen számú interfészt képes megvalósítani, és csak egy osztályt tud kiterjeszteni.Egy interfész kiterjeszthet több interfészt, de nem képes semmilyen interfészt megvalósítani.
KonstruktőrEgy osztálynak lehetnek konstruktorai a változók inicializálására.Egy interfésznek soha nem lehet konstruktora, mivel alig van változó az inicializáláshoz.

Az osztály meghatározása

Egy osztály a Java programozás legfontosabb szempontja, osztályok nélkül nem hajthat végre egy java programot. Egy osztály referenciatípust hoz létre, és ezeket a referenciatípusokat objektumok létrehozására használják. Az osztálynak aláírása és teste van. Egy osztály aláírása az osztály nevét és információit tartalmazza, ami azt mutatja, hogy az osztály örökölt-e egy másik osztályt. Az osztály teste olyan mezőket és módszereket tartalmaz, amelyek ezeken a területeken működnek. Egy osztály egy kulcsszóosztály használatával jön létre. Lássuk, hogyan lehet egy osztályt bejelenteni.

 class class_name {/ * mezők ... módszerek * /} 

Amikor egy osztály azonnal megjelenik, minden létrehozott objektum a mezők és módszerek egy példányát tartalmazza velük. Az osztályon belül bejelentett mezők és tagok statikusak vagy nem statikusak lehetnek. A statikus tagok értéke állandó minden egyes objektumnál, míg a nem statikus tagok minden objektumot igény szerint inicializálják.

Az osztály tagjai hozzáférési specifikátorral rendelkeznek, amelyek meghatározzák a tagok vagy az alosztályok tagjai láthatóságát és hozzáférhetőségét. A hozzáférési jellemzők nyilvánosak, privátak és védettek. Egy osztályt egy másik osztály örökölhet a hozzáférési specifikáció használatával, amely meghatározza a szuperklaszt tagjai (öröklött osztály) láthatóságát egy alosztályban (öröklődő osztály). Így az osztály megfelel az objektumorientált programozásban az adatok elrejtésének és a kapszulázás fogalmának.

Az interfész meghatározása

Egy interfész a Java-ban definiált referenciatípusok közé tartozik. Egy interfész fontossága, hogy Java-ban egy osztály csak egyetlen osztályt örökölhet. Ennek a korlátozásnak a elkerülése érdekében a Java tervezői bemutatták az interfész fogalmát. Egy interfész szintaktikailag hasonlít egy osztályhoz, de hiányzik a terepi nyilatkozatban, és az interfészen belüli módszereknek nincs végrehajtása. Egy felületet egy kulcsszó interfész használatával jelentenek be. Nézzük meg a felület deklarációját.

 interface interface_name {type var_name = érték; típusú módszer1 (paraméterlista); típusú módszer2 (paraméter-lista); . . } 

Egy interfész nem definiál semmilyen módszert, amely benne van, mert hiányzik a mezőkben a működéshez. Csak azért, mert az interfészen belüli bármely módszer nem hajt végre semmilyen műveletet, az interfész soha nem lesz azonnal elérhető. Ha egy felületen bármilyen mezőtag van, akkor azt a nyilatkozat benyújtásakor inicializálni kell. Az interfész soha nem tartalmaz konstruktort, mivel hiányzik a terepi tagok az inicializáláshoz. Tehát egy interfész csak azt határozza meg, hogy mit kell tennie az osztálynak, és nem kell, hogy mit tegyen.

A létrehozott interfész bármilyen kulcsszóval megvalósítható kulcsszavakat használva. Az interfészeket végrehajtó osztályoknak azonban meg kell határozniuk az interfészen belüli összes módszert. Az interfész egy másik felületet is örökölhet a kiterjesztett kulcsszó használatával. Ha egy osztály olyan felületet valósít meg, amely egy másik interfészt kiterjeszt. Ekkor egy osztálynak meg kell határoznia mind a láncban megjelenő interfészek módszereit. Az interfészen belüli módszereknek mindig nyilvánosnak kell lenniük, mivel azokat az azokat végrehajtó osztályokhoz kell hozzáférni.

Az osztály és az interfész közötti különbségek a Java-ban

  1. Az osztályokat az objektumok létrehozásával lehet előállítani. Az interfész soha nem jelenik meg, mivel az interfészen belül bejelentett módszerek elvontak, és nem hajtanak végre semmilyen műveletet, így semmilyen interfész nem használható.
  2. Egy osztályt egy kulcsszóosztály használatával jelentenek be. Hasonlóképpen, egy interfész jön létre egy kulcsszó interfész használatával.
  3. Az osztály tagjai rendelkezhetnek a hozzáférési jellemzőkkel, mint például az állami, magán, védett. Az interfész tagjai azonban mindig nyilvánosak, mivel azokat az őket végrehajtó osztályokhoz kell hozzáférni.
  4. Az osztályon belüli módszerek úgy vannak definiálva, hogy egy műveletet hajtsanak végre az osztályban bejelentett mezőkön. Mivel az interfész hiányzik a mezők deklarálásában, az interfészen belüli módszerek pusztán elvontak.
  5. Egy osztály bármilyen számú interfészt képes megvalósítani, de csak egy szuperosztályt tud kiterjeszteni. Egy interfész kiterjeszthet bármilyen számú interfészt, de nem tud semmilyen interfészt megvalósítani.
  6. Egy osztályon belül vannak olyan konstruktorok, amelyek a változót inicializálják. Azonban egy interfésznek nincsenek konstruktorai, mivel nincsenek inicializálandó mezők. Egy interfész mezőket csak a nyilatkozatuk idején inicializálják.

Következtetés:

Mind az osztályok, mind a felületek saját jelentőséggel bírnak. Egy osztályt használunk, amikor meg kell határoznunk, hogy a feladat hogyan történjen. Egy interfészt használunk, ha tudnunk kell, hogy milyen feladatot kell elvégezni.

Top