A Java és az Interfész osztály közötti különbség

Kulcskülönbség: Az interfész vagy a protokoll egy közös mód, amely lehetővé teszi a független objektumok egymással való kommunikációját. Egy elfogadott viselkedést jelent, amely megkönnyíti a két objektum közötti kölcsönhatást. Az absztrakt osztály olyan objektumosztály, amely nem lehet egy objektum példányát felállítani vagy beállítani. Ennek az osztálynak nincs megvalósítása, vagy hiányos végrehajtása lehet.

A Java, a C ++, a C # minden olyan bonyolult programozási nyelv, amely részletes tanulmányozásra és megértésre van szükség ahhoz, hogy együtt tudjon dolgozni. Sok különböző módszer létezik ezeken a nyelveken, amelyek eldönthetik, hogyan működik a nyelv. Az Interface és az Abstract Class két összetéveszthető fogalom, amelyek az OOP (objektum-orientált programozás) részét képezik. Ez a kettő egyénileg vagy egymással együtt használható. Ezek a két teljesen különböznek egymástól, és különböző esetekben használatosak.

A Java programozási nyelv, amelyet a C nyelv befolyásolt. A szintaxis nagy részét C és C ++ képezi, de kevesebb alacsony szintű létesítménye van. A Java egy általános célú programozási nyelv, amely a korábbi nyelvekhez képest kevesebb végrehajtási függőséggel rendelkezik. Ez párhuzamos, osztály-alapú és objektum-orientált nyelv.

A Java-t James Gosling fejlesztette ki a Sun Microsystems-ben, és 1995-ben adták ki. Eredetileg a Sun Microsystems Java platformjának alapelemeként jelent meg. A Sun a Java-technológiák nagy részét a GNU Általános Nyilvános Licenc alapján újra engedélyezte. Ez azt jelenti, hogy a GNU General Public License által licencelt összes technológia nyílt forráskódú, és általában ingyenesen elérhető. A Sun Microsystems végül beolvadt az Oracle Corporation-be. 2012-től a Java az egyik legnépszerűbb programozási nyelv. Ez különösen igaz az ügyfél-szerver webalkalmazásokra. Sok más rendszer kifejlesztette a Sun technológiák alternatív megvalósítását, mint például a GNU Compiler for Java és a GNU Classpath.

Az interfész vagy a protokoll egy közös mód, amely lehetővé teszi a független objektumok egymással való kommunikációját. Egy elfogadott viselkedést jelent, amely megkönnyíti a két objektum közötti kölcsönhatást. A kezelőfelület kulcsfontosságú a végrehajtott különböző műveletekhez, és összekapcsolódik a két különböző objektum között. Ha egy objektumosztály ki van téve az interfésznek, az osztálynak követnie kell az interfész által végrehajtott viselkedést. Az interfészek általában állandó deklarációkat és módszer aláírásokat tartalmaznak. Bármely interfész, amely egy adott interfészt valósít meg, minden, az interfészben említett módszert alkalmaz, vagy elvont osztálynak kell nyilvánítani. Java-ban bármely objektum lehet interfészként definiálható, ha az objektum nulla vagy olyan osztályt tartalmaz, amelyben az adott interfészt megvalósítja. A Java alkalmazásban többféle interfészt tudunk megvalósítani egyetlen osztályra az implementációs kulcsszavak segítségével.

Az absztrakt osztály olyan objektumosztály, amely nem lehet egy objektum példányát felállítani vagy beállítani. Ennek az osztálynak nincs megvalósítása, vagy hiányos végrehajtása lehet. Ezenkívül absztrakt módszereket vagy tulajdonságokat is tartalmazhat, amelyeket az összes alosztály megoszt. Egyes programozási nyelvekben az elvont típusok, amelyek nincsenek implementálva, interfészként ismertek. Java-ban egy absztrakt típus hozható létre az „absztrakt” kulcsszó segítségével az osztály meghatározásában. Az absztrakt osztály létrehozásának célja, hogy az elvont osztályban nem végrehajtott összes módszert helyezze el, és hagyja, hogy az alosztály meghatározza, hogyan kell ezeket az osztályokat végrehajtani. Ha egy osztálynak egyetlen absztrakt módszere van, akkor az osztályt elvont osztálynak kell nyilvánítani, bár nem kell legalább egy módszerrel rendelkeznie az osztály absztrakt kimutatására.

Malliktalksjava.in felsorolja az interfész és az absztrakt közötti főbb különbségeket:

  • Az absztrakt osztálynak van a kivitelezője, de az interfész nem.
  • Az elvont osztályok egyes tagjai számára megvalósíthatók (módszerek), de a kezelőfelület egyik tagjának sem tud végrehajtani.
  • Az absztrakt osztályoknak további osztályokat kell használniuk, amelyek haszontalanok lesznek.
  • Az interfészeknek más osztályoknak kell végrehajtaniuk azokat, amelyek haszontalanok lesznek
  • Csak egy felület képes kiterjeszteni egy másik felületet, de bármelyik osztály egy absztrakt osztályt is kiterjeszthet.
  • Az interfészek összes változója alapértelmezés szerint végleges
  • Az interfészek többféle örökséget jelentenek. Egy osztály csak egy másik osztályt nyújthat.
  • Az interfészek csak olyan nyilvános módszerekre és állandókra korlátozódnak, amelyek nincsenek végrehajtva. Az elvont osztályok részleges végrehajtással, védett részekkel, statikus módszerekkel stb. Rendelkezhetnek.
  • Egy osztály több interfészt is megvalósíthat. De elvont osztály esetén az osztály csak egy absztrakt osztályt nyújthat.
  • Az interfészek lassúak, mivel extra közvetettséget igényel a megfelelő módszer megtalálásához az adott osztályban. Az absztrakt osztályok gyorsak.
  • A hozzáférhetőség módosítója (nyilvános / magán / belső) megengedett az absztrakt osztályhoz. Az interfész nem teszi lehetővé a hozzáférhetőség módosítását
  • Az elvont osztály teljes vagy hiányos módszereket tartalmazhat. Az interfészek csak egy módszer aláírását tartalmazhatják, de nem tartalmaznak testet. Tehát egy absztrakt osztály megvalósíthat módszereket, de egy interfész nem tudja megvalósítani a módszereket.
  • Egy absztrakt osztály tartalmazhat mezőket, konstruktorokat, vagy destruktorokat és eszköz tulajdonságokat. Egy interfész nem tartalmazhat mezőket, konstruktort vagy destruktort, és csak az ingatlan aláírása van, de nincs végrehajtás.
  • Különböző hozzáférési módosítók, mint például absztrakt, védett, belső, nyilvános, virtuális stb. Hasznosak az absztrakt osztályokban, de nem a felületeken.
  • Az elvont hatókör a származtatott osztályig terjed.
  • Az interfész terjedelme akár az öröklési lánc bármely szintjére is kiterjed.

A táblázat adatai a codeproject.com és a mindprod.com jóvoltából állnak

Felület

Absztrakt osztály

Többszörös öröklés

Egy osztály több felületet örökölhet.

Egy osztály csak egy absztrakt osztályt örökölhet.

Alapértelmezett végrehajtás

Az interfész nem tud kódot adni, csak az aláírást.

Egy absztrakt osztály teljes, alapértelmezett kódot és / vagy csak azokat a részleteket adhatja meg, amelyeket felül kell írni.

Hozzáférési módosítások

Egy interfész nem rendelkezik hozzáférési módosítókkal az al, funkciók, tulajdonságok stb. Számára.

Egy absztrakt osztály tartalmazhat hozzáférési módosítókat az al, funkciók, tulajdonságok számára.

Core vs. Peripheral

Az interfészek egy osztály perifériás képességeinek meghatározására szolgálnak. Más szóval mind az ember, mind a jármű örökölhet egy IMovable felületről.

Egy absztrakt osztály meghatározza az osztály azonosságát, és ott használják az azonos típusú objektumokhoz.

A homogenitás

Ha a különböző implementációk csak a módszer aláírásait osztják meg, akkor jobb az Interfészek használata.

Ha a különböző megvalósítások ugyanolyan jellegűek és közös viselkedést vagy státuszt használnak, akkor az absztrakt osztály jobb használni.

Sebesség

Több idő szükséges ahhoz, hogy a megfelelő osztályokban megtalálják a tényleges módszert.

Gyors

Funkció hozzáadása

Ha új módszert adunk az Interfészhez, akkor fel kell tárnunk az interfész összes implementációját, és meg kell határoznunk az új módszer megvalósítását.

Ha új módszert adunk egy absztrakt osztályhoz, akkor lehetőségünk nyílik az alapértelmezett megvalósítás biztosítására, ezért az összes meglévő kód megfelelően működik.

Mezők és Constants

Az interfészekben nem lehet mezőket definiálni.

Az elvont osztálynak lehetnek mezõi és állandói.

tömörség

Az interfész állandó deklarációi mindegyike feltételezett nyilvános statikus végleges.

A megosztott kód egy absztrakt osztályba adható.

állandók

Csak statikus végkonstansok használhatják azokat képesítés nélkül olyan osztályokban, amelyek az interfészt implementálják.

Mind a példány, mind a statikus állandók lehetségesek. A konstansok kiszámításához a statikus és a példány intializáló kód is lehetséges.

Harmadik fél kényelme

Egy interfész-implementáció hozzáadható bármely létező harmadik osztályhoz.

Egy harmadik fél osztályát újra kell írni, hogy csak az absztrakt osztályból származzon.

egy-egy-egy viszonylagos vagy teendő

Az interfészeket gyakran használják egy osztály perifériás képességeinek leírására, nem pedig annak központi identitására, pl. Egy autóosztály megvalósíthatja az újrahasznosítható felületet, amely sok más, teljesen független objektumra vonatkozik.

Az elvont osztály meghatározza leszármazottainak alapvető identitását. A megvalósított interfészek felsorolják azokat az általános dolgokat, amelyeket egy osztály képes elvégezni, nem pedig az, amit az osztály egy.

Java-kontextusban a felhasználóknak általában inkább a Runnable felületet kell bevezetniük, mint a Thread kiterjesztését, mert nem igazán érdekeltek új Thread funkciók biztosításában, általában csak egy kódot akarnak önállóan futni. Olyan dolgot akarnak létrehozni, amely egy szálban futtatható, nem egy újfajta szál. A hasonló is-a vs. has-a vita akkor jön létre, amikor úgy dönt, hogy örököl vagy delegál.

Csatlakoztat

A felhasználó egy új csere-modult írhat fel olyan interfészhez, amely nem tartalmaz egyetlen kódot a meglévő implementációkkal közösen. Amikor a felhasználó végrehajtja a felületet, a kezelőfelületről semmilyen alapértelmezett végrehajtás nélkül indul. A felhasználónak más osztályok eszközeit kell beszereznie; semmi nem jön az interfészen kívül, mint néhány konstans. Ez lehetővé teszi a felhasználó számára a radikálisan eltérő belső kialakítás megvalósítását.

A felhasználónak az abszolút osztályt használnia kell a kódbázishoz, az összes kísérő poggyásza, jó vagy rossz. Az absztrakt osztály szerzője a felhasználó számára struktúrát vezetett be.

Karbantartás

Ha az ügyfél kódja csak egy felület szempontjából beszél, akkor a gyárilag alkalmazott módszer segítségével könnyen megváltoztathatja a mögöttes konkrét megvalósítást.

Ha az ügyfél kódja csak egy absztrakt osztály, akkor a gyárilag alkalmazott módszer segítségével könnyen megváltoztathatja a konkrét megvalósítást.

Ajánlott

Kapcsolódó Cikkek

  • népszerű összehasonlítások: A RAM és a CPU közötti különbség

    A RAM és a CPU közötti különbség

    A legfontosabb különbség: a RAM egy elsődleges adattároló eszköz, amely a számítógép által a műveletek végrehajtásához szükséges adatokat tárolja. Olyan hardver része, amely az operációs rendszer alkalmazási programjait és a jelenleg futó folyamatokat tárolja. A CPU viszont a számítógépen lévő hardver, amely a számítógépes program utasításait végzi. Mind a Random-Access Memory (RAM), mi
  • népszerű összehasonlítások: A világi és a közösség közötti különbség

    A világi és a közösség közötti különbség

    Kulcsfontosságú különbség : A világi olyan fogalom, amelyben a rendszer az erkölcsét vallásos befolyás nélkül formálja. A közösséget vallási közösségként határozzák meg. A kommunalizmus az együttélés, a vagyon és a felelősség megosztása. Olyan rendszer, amelyben a kulturális csoportok külön-külön szavaznak képviselőikért. A tulajdon közös tulajdonát képezi.
  • népszerű összehasonlítások: A gén és a genom közötti különbség

    A gén és a genom közötti különbség

    Főbb különbség : A gén olyan öröklődési egység, amely a kromoszómán rögzített helyzetben lévő DNS-ből áll. A genom az összes gén csoportja, amely egy haploid kromoszómás halmazból áll. Annyira sok különböző faj jelen van a világon, minden faj egyedülálló örökölt tulajdonságokkal rendelkezik, amelyek különböznek egymástól. Ezeket a jellemzőket a sejtekben jelen
  • népszerű összehasonlítások: Különbség a futball és a rögbi ütések között

    Különbség a futball és a rögbi ütések között

    Főbb különbség: A rögbi láncok bőrből vagy tartós szintetikus anyagból készülnek, míg a futballpántok kenguru bőrből vagy teljes kiőrlésű bőrből készülnek. A rögbi kapcsok 10 résszel rendelkeznek, míg a futballpánttal 16. A rögbi cipőknek nincs lábujjhegye, míg a futballcipő. Néhány futballcipő ékszalaggal
  • népszerű összehasonlítások: Különbség a Hyundai Elantra és a Hyundai Verna között

    Különbség a Hyundai Elantra és a Hyundai Verna között

    Főbb különbség: Az Elantra és a Verna egyaránt a Hyundai által tervezett szedán autók. Azonban a Hyundai Elantra a Verna-nál jobbnak tekinthető, mivel több energiával és tulajdonságokkal rendelkezik. A Hyundai Elantra egy 1990-ben elindított és még gyártott autó. Ez az ötödik generáció, amely 2010-ben indult. Ugyanez az autó a Hyun
  • népszerű összehasonlítások: A téma és a téma közötti különbség

    A téma és a téma közötti különbség

    Kulcsfontosságú különbség: A témakör egy olyan szempontot határoz meg, amelyet a beszélgetés során vagy bármilyen írásbeli formában fognak lefedni, míg a témát a tudás szélesebb aspektusával összefüggésben használják. A téma nem képezheti a témát, míg a témában sok téma lehet. Azonban a téma és a téma felcser
  • népszerű összehasonlítások: Különbség a Skinny Jeans és a Carrot Jeans között

    Különbség a Skinny Jeans és a Carrot Jeans között

    Főbb különbség: A Skinny Jeans teste átölelte őket, és a bőrrel együtt görbülnek; a test minden részén szorosak. A sárgarépa farmer lazább a derékon és a combon, és szorosabb a borjútól. A ruházat életünk fontos részévé vált, a ruházati típusok, a márka, a stílus és a trend mindenki meghatározza az embert. Mivel a farmereket bevezették a k
  • népszerű összehasonlítások: A főnév és az adverb közötti különbség

    A főnév és az adverb közötti különbség

    Kulcskülönbség : A főnév egy olyan szó, amelyet az emberek, helyek, tárgyak, események stb. Azonosítására használnak. Az adverb szó olyan szó, amelyet egy ige, melléknév vagy mondat leírására használnak. A főnevek az angol nyelvtan beszédének szerves részét képezik. Ezek a szavak segítenek azonosítani az objektumokat, az embereket és a helyeket a nevük alapján, és osztályozni őket kényelmünk szerint. A főnevek gyakran egy mondat egyik
  • népszerű összehasonlítások: A tanácsadás és a tanácsadás közötti különbség

    A tanácsadás és a tanácsadás közötti különbség

    Főbb különbség: A tanácsadás főnévként működik, ami azt jelenti, hogy a vélemény ajánlott vagy felajánlott. A Tanácsadás igékként szolgál, ami valamit jelent. Az emberek gyakran megzavarják a tanácsokat és tanácsokat. Úgy néz ki és hangzik, és ezért sokszor egymás között használják őket. Az egyik helyett a másik használa

Szerkesztő Választása

Különbség az Üdvözlettel és Üdvözlettel

Kulcskülönbség: „Tisztelettel” általánosan egy hivatalos levélben használják, ahol a szerző ismeri a válaszadó nevét. A „Regards” -ot gyakran használják az informális kommunikációhoz, amelyet a közeli barátok vagy rokonok írnak. A betűk vagy e-mailek fontos szempontja az értékelések vagy a szokásos bezárások. A mai világban a levelek és e-mai