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 hang és a fény közötti különbség

    A hang és a fény közötti különbség

    Kulcskülönbség: A hang olyan mechanikus rezgés, amely áthalad egy olyan közegen, mint a gáz, a folyadék vagy a szilárd anyag, hogy hang legyen. A hangok frekvenciákból állnak, amelyek közül néhányat hallunk, míg másokat nem tudunk. A hangot technikailag mechanikai zavarként határozták meg, amely egy rugalmas közegen halad át. A fény olyan elektrom
  • népszerű összehasonlítások: Az iPhone 5C és az iPhone 4 közötti különbség

    Az iPhone 5C és az iPhone 4 közötti különbség

    A legfontosabb különbség: Az iPhone 5C egy olcsóbb változata az iPhone 5S-nek, az Apple Inc. Az Apple iPhone 4 hatalmas hullámokat készített, amikor 2012 júniusában indították el az iPhone 3GS utódjaként. A videohívások előmozdítására szánták. Hónapos spekuláció után az Apple bejelentette a legújabb telefonmodelljét: iPhone 5S és iPhone 5C. A hivatalos bejelentés 2013
  • népszerű összehasonlítások: A maori és a pakeha kultúrák közötti különbség

    A maori és a pakeha kultúrák közötti különbség

    Főbb különbség: A maori kultúra az új-zélandi maori népek kultúrája, és az Új-Zéland kultúrájának egyedülálló részét képezi. A Pakeha kultúrája főként az új-zélandi kolonizált brit telepesekből származik. Új-Zéland két fő kultúrát követ, a maori kultúrát és a Pakeha kultúrát. Mi a különbség a két feltétel között? Has
  • népszerű összehasonlítások: A K1 és K2 vitaminok közötti különbség

    A K1 és K2 vitaminok közötti különbség

    Főbb különbség: A K1-vitamin és a K2-vitamin a K1-vitamin két alapvető típusa. Mindkettő különbözik az olyan szempontoktól, mint a források, előnyök stb. A K1-vitamint növények szintetizálják. Másrészt a K2-et bélbaktériumok szintetizálják. A vitamin a specifikus szerves vegyületekre vonatkozik, amelyek elengedhetetlenek a különböző testfolyamatokhoz. Ezek a vegyületek táplálékból
  • népszerű összehasonlítások: A hallás és a hallás közötti különbség

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

    Főbb különbség: A hallás egy személy öt érzéke, és az a képesség, hogy érzékelje a hangot a rezgések észlelése révén egy szerven, mint például a fülön. Az „aktív hallgatás” néven ismert meghallgatás egy olyan technika, amelyet a kommunikáció során használnak, és amely megköveteli, hogy a személy figyeljen a hangszóróra és visszajelzést adjon. A meghallgatás lépésről lépésre halad, m
  • népszerű összehasonlítások: Különbség a dél-indiai étel és az észak-indiai étel között

    Különbség a dél-indiai étel és az észak-indiai étel között

    A legfontosabb különbség: az észak-indiai ételeket az arabok és a perzsák erősen befolyásolták, és az ételek sokkal nehezebbek és krémesebbek. A dél-indiai ételeket erősen befolyásolják a rizs és a kókusz, és az ételek magasabb víztartalmúak. India nagyon változatos ország, és több különböző kultúrával rendelkezik, amelyek nyelvi, hagyományi és természetesen a konyhában különböznek. Indiának sokféle főzési lehetősége van,
  • népszerű összehasonlítások: Az Rs és a Re közötti különbség

    Az Rs és a Re közötti különbség

    Kulcs különbség: Rs. és Re. a rúpiák képviseletére szolgálnak. Újra. a rúpia egyedülálló értékét jelenti, míg Rs. több rúpiát jelöl. Az „Rs” és a „Re” kifejezéseket mind a pénznem, mind a rúpiák jelölik. A rúpia olyan pénznem, amelyet számos keleti országban használnak. Ahogy a dollárokat a „$” jelzéssel jelö
  • népszerű összehasonlítások: Az MPEG és az MP3 közötti különbség

    Az MPEG és az MP3 közötti különbség

    A legfontosabb különbség: az MPEG a Moving Picture Experts Group (mozog kép szakértői csoport). Az ISO és az IEC által 1988-ban létrehozott szakértői munkacsoport. Az MPEG célja az volt, hogy az audio és video tömörítésre és átvitelre vonatkozó szabványokat határozzon meg. Az MP3 rövid az MPEG-1 Audio Layer 3-hoz. Ez egy szabadalmaztat
  • népszerű összehasonlítások: A keleti és a nyugati vallás közötti különbség

    A keleti és a nyugati vallás közötti különbség

    Főbb különbség: A keleti vallások azok a vallások, amelyek a keleti térségekből származnak, mint Kína, Délkelet-Ázsia, India és Japán. A nyugati vallások azok a vallások, amelyek az olyan nyugati területekről származnak, mint Amerika és Európa. Két olyan terület van, ahol a világ a vallásokról, a keleti és a nyugati területekről szól. Kevés hasonlóság van a keleti

Szerkesztő Választása

Az arthritis és az osteoarthritis közötti különbség

Főbb különbség: „ Arthritis ”, a kifejezés arra utal, hogy több mint száz különböző fajta ízületi problémát jelez, amelyeket a fájdalom, a duzzanat és a merevség jelez. Az ízületi gyulladás a leggyakoribb formája az ízületi gyulladásnak, amely elsősorban a súlyos ízületi sérüléseket szenvedő emberekre vonatkozik. Az ízületi gyulladás egy átfogó kif