Különbség absztrakt osztály és interfész között

Anonim

Absztrakt osztály és interfész

Absztrakt osztály és interfész két tárgyorientált konstrukció található sok objektum orientált programozási nyelvek, mint a Java. Az absztrakt osztály a szokásos (konkrét) osztály absztrakt változatának tekinthető, míg egy interfész a szerződés végrehajtásának eszközeként tekinthető. Az absztrakt osztály olyan osztály, amelyet nem lehet inicializálni, de bővíthető. Az interfész olyan típus, amelyet más osztályoknak kell végrehajtania. A Java-ban az absztrakt osztályok az absztrakt kulcsszó használatával kerülnek deklarálásra, míg az interfész kulcsszó egy interfészt definiál.

Mi az absztrakt osztály?

Tipikusan az Absztrakt osztályok (Absztrakt bázis osztályok) (ABC) nem instantiáltak (az adott osztály egy példányát nem lehet létrehozni). Tehát az absztrakt osztályok csak akkor értelmezhetőek, ha a programozási nyelv támogatja az öröklést (az alkategóriák létrehozásának képessége az osztály kiterjesztéséről). Az absztrakt osztályok általában absztrakt koncepciót vagy entitást jelentenek, részben vagy teljesen végrehajtva. Ezért az absztrakt osztályok olyan anyaosztályokként működnek, amelyekből gyermekosztályok származnak, hogy a gyermek osztály megoszthassa a szülők osztályának hiányos funkcióit, és kiegészítheti azokat.

Absztrakt osztályok tartalmazhatnak absztrakt módszereket. Az elvont osztályt kiterjesztő alosztályok végrehajthatják ezeket az (örökölt) absztrakt módszereket. Ha a gyermek osztály minden ilyen absztrakt módszert alkalmaz, akkor konkrét osztály. De ha nem így van, akkor a gyermek osztály is absztrakt osztály lesz. Ez azt jelenti, hogy amikor a programozó egy osztályt absztraktként jelölt ki, azt mondja, hogy az osztály hiányos lesz, és olyan elemekkel rendelkezik, amelyeket az örökölt alosztályoknak ki kell tölteniük. Ez egy jó módja annak, hogy két programozó között létrejöjjön egy szerződés, ami egyszerűsíti a szoftverfejlesztés során felmerülő feladatokat. A programozó, aki az öröklési kódot írja, pontosan követnie kell a metódus-definíciókat (de persze saját végrehajtását is).

Mi az Interface?

Az interfész olyan absztrakt típus, amelyet egy olyan szerződés meghatározására használnak, amelyet osztályok szerint kell végrehajtani, amelyek végrehajtják az interfészt. Az interfész kulcsszó egy interfész definiálására szolgál, és a végrehajtási kulcsszó egy interfész egy osztály (Java programozási nyelv) végrehajtására szolgál. Általában egy interfész csak metódus aláírásokat és állandó deklarációkat tartalmaz. Minden olyan felületet, amely egy adott felületet valósít meg, végre kell hajtania az interfészben definiált összes módszert, vagy absztrakt osztályként kell megjelennie. A Java-ban az objektum-hivatkozás típusa lehet interfész-típus. De az objektumnak vagy nullnak kell lennie, vagy rendelkeznie kell egy osztály objektummal, amely végrehajtja azt az adott felületet.A Javítás Java kulcsszó használatával több felületet is végrehajthat egyetlen osztályra.

Mi a különbség az absztrakt osztály és az interfész között?

Absztrakt osztályok általában absztrakt koncepciót vagy olyan entitet jelentenek, amely részben vagy teljesen végrehajtott. Másrészről egy interfész olyan absztrakt típus, amelyet egy olyan szerződés meghatározására használnak, amelyet osztályok szerint kell végrehajtani. Az absztrakt osztályokat örökölni (vagy kiterjeszteni), míg az interfészeket végre kell hajtani. Az absztrakt osztályok absztrakt módszereket tartalmazhatnak, míg a felület csak absztrakt módszereket tartalmazhat. Az absztrakt osztályok tartalmazhatnak minden változót, de az Interfészek csak konstansokat definiálhatnak. Egy osztály nem örökölhet több mint egy elvont osztályból, de több interfészt is képes megvalósítani. Egy interfész nem képes másik interfészt megvalósítani. Azonban egy interfész kiterjesztheti az osztályt.