Starpība starp interfeisu un abstrakto klasi Java

Galvenā atšķirība: saskarne vai protokols ir kopīgs veids, kas ļauj nesaistītiem objektiem sazināties savā starpā. Tā ir saskaņota uzvedība, kas veicina abu objektu mijiedarbību. Abstrakta klase ir objektu klase, ko nevar iztulkot vai izveidot objekta instancē. Šai klasei var nebūt īstenošanas vai tā var būt nepilnīga.

Java, C + +, C # ir visas sarežģītās programmēšanas valodas, kurām nepieciešama detalizēta izpēte un izpratne, lai varētu strādāt. Šajās valodās tiek izmantotas dažādas metodes, kas izlemj, kā valoda darbosies. Interfeiss un abstrakta klase ir divas neskaidras koncepcijas, kas ir daļa no OOP (objektorientēta programmēšana). Šos divus var izmantot atsevišķi vai kopā. Šie divi atšķiras viens no otra un tiek izmantoti dažādos gadījumos.

Java ir programmēšanas valoda, kuru ietekmēja C valoda. Tā iegūst lielu daļu no sintakses no C un C + +, taču tai ir mazāk zema līmeņa iekārtu nekā jebkurš. Java ir vispārējas nozīmes programmēšanas valoda, kas ir izstrādāta tā, lai būtu mazāk īstenošanas atkarību salīdzinājumā ar iepriekšējām valodām. Tā ir vienlaicīga, klases un objektorientēta valoda.

Java izstrādāja James Gosling Sun Microsystems un tika izlaists 1995. gadā. Sākotnēji tas tika izlaists kā Sun Microsystems Java platformas pamatelements. Kopš tā laika Sun ir atkārtoti licencējusi lielāko daļu savu Java tehnoloģiju saskaņā ar GNU General Public License. Tas nozīmē, ka visa tehnoloģija, kas ir licencēta saskaņā ar GNU General Public License, ir atvērtā koda un parasti pieejama bez maksas. Sun Microsystems beidzot apvienojās ar Oracle Corporation. Kopš 2012. gada Java ir kļuvusi par vienu no populārākajām programmēšanas valodām lietošanai. Tas jo īpaši attiecas uz klienta-servera tīmekļa lietojumprogrammām. Daudzas citas sistēmas ir izstrādājušas alternatīvas Sun tehnoloģiju ieviešanas iespējas, piemēram, GNU Compiler Java un GNU Classpath.

Saskarne vai protokols ir kopīgs veids, kas ļauj nesaistītiem objektiem sazināties savā starpā. Tā ir saskaņota uzvedība, kas veicina abu objektu mijiedarbību. Interfeisam ir atslēga dažādām īstenojamām darbībām un kalpo kā saikne starp diviem dažādiem objektiem. Ja saskarsmei pakļauta objektu klase, klasei jāievēro saskarnes īstenotā rīcība. Bieži vien saskarnes satur tikai pastāvīgas deklarācijas un metožu parakstus. Jebkurai saskarnei, kas īsteno konkrētu saskarni, jāpiemēro visas saskarnē minētās metodes vai jāpaziņo par abstraktu klasi. Java gadījumā jebkuru objektu var definēt kā interfeisu, ja šis objekts ir nulles vai tam ir klase, kurā tā īsteno šo konkrēto saskarni. Java var ieviest vairākas saskarnes ar vienu klasi, izmantojot īstenošanas atslēgvārdus.

Abstrakta klase ir objektu klase, ko nevar iztulkot vai izveidot objekta instancē. Šai klasei var nebūt īstenošanas vai tā var būt nepilnīga. Tam var būt arī abstraktas metodes vai īpašības, kas ir kopīgas visām apakšgrupām. Dažās programmēšanas valodās abstrakti veidi bez ieviešanas ir pazīstami kā saskarnes. Java gadījumā abstrakts veids var tikt izveidots, izmantojot atslēgvārdu “abstrakts” klases definīcijā. Abstraktās klases mērķis ir ievietot visas metodes, kas nav īstenotas abstraktajā klasē, un atstāt to apakšklasē, lai noteiktu, kā īstenot šīs klases. Ja klasē ir viena abstrakta metode, klasei jābūt pasludinātai par abstraktu klasi, lai gan nav nepieciešama vismaz viena metode, lai pasludinātu klases abstraktu.

Malliktalksjava.in norāda galvenās atšķirības starp saskarni un abstraktu kā:

  • Abstraktai klasei ir konstruktors, bet interfeiss nav.
  • Abstraktajām klasēm var būt ieviešanas iespējas dažiem tās locekļiem (metodēm), bet saskarne nevar tikt īstenota nevienam no tās locekļiem.
  • Abstraktajām klasēm vajadzētu būt apakšklasēm, kas būs bezjēdzīgas.
  • Saskarnes ir jāīsteno citās klasēs, kas būs bezjēdzīgas
  • Tikai saskarne var paplašināt citu interfeisu, bet jebkura klase var paplašināt abstraktu klasi.
  • Visi mainīgie interfeisos pēc noklusējuma ir galīgi
  • Saskarnes nodrošina vairāku mantojumu. Klase var paplašināt tikai vienu citu klasi.
  • Saskarnes aprobežojas ar publiskām metodēm un konstantēm bez īstenošanas. Abstraktajām klasēm var būt daļēja īstenošana, aizsargātas daļas, statiskās metodes utt.
  • Klase var ieviest vairākas saskarnes. Bet abstraktas klases gadījumā klase var paplašināt tikai vienu abstraktu klasi.
  • Saskarnes ir lēnas, jo ir nepieciešama papildu netieša metode, lai atrastu atbilstošu metodi konkrētajā klasē. Abstraktās klases ir ātras.
  • Pieejamības modifikators (publiskais / privātais / iekšējais) ir atļauts abstraktai klasei. Interfeiss nepieļauj piekļuves modificētāju
  • Abstraktā klasē var būt pilnīgas vai nepilnīgas metodes. Saskarnes var saturēt tikai metodes parakstu, bet ne ķermeni. Tādējādi abstrakta klase var ieviest metodes, bet saskarne nevar īstenot metodes.
  • Abstraktā klasē var būt lauki, konstruktori vai destruktori un agregāta īpašības. Interfeiss nevar saturēt laukus, konstruktorus vai destruktorus, un tam ir tikai īpašnieka paraksts, bet tas nav īstenots.
  • Dažādi piekļuves modifikatori, piemēram, abstrakti, aizsargāti, iekšēji, publiski, virtuāli utt., Ir noderīgi abstraktajās klasēs, bet ne saskarnēs.
  • Abstrakts apjoms ir atkarīgs no atvasinātās klases.
  • Interfeisa darbības joma ir līdz jebkuram tās mantojuma ķēdes līmenim.

Tabulas informācija ir kodeproject.com un mindprod.com pieklājība

Saskarne

Abstrakta klase

Vairāki mantojumi

Klase var mantot vairākas saskarnes.

Klase var mantot tikai vienu abstraktu klasi.

Noklusējuma īstenošana

Interfeiss nevar nodrošināt nevienu kodu, tikai parakstu.

Abstrakta klase var sniegt pilnīgu, noklusējuma kodu un / vai tikai detaļas, kas ir jānovērš.

Piekļuves modifikatori

Interfeisam nevar būt piekļuves modifikatori apakšfunkcijām, funkcijām, īpašībām uc viss tiek uzskatīts par publisku.

Abstraktā klasē var būt piekļuves modifikatori apakšfunkcijām, funkcijām, īpašībām.

Core vs. Peripheral

Interfeisus izmanto, lai noteiktu klases perifērās spējas. Citiem vārdiem sakot, gan cilvēks, gan transportlīdzeklis var mantot no IMovable interfeisa.

Abstrakta klase definē klases pamatidentitāti, un tajā tiek izmantoti tāda paša veida objekti.

Homogenitāte

Ja dažādas implementācijas koplieto tikai metodes parakstus, labāk ir izmantot saskarnes.

Ja dažādas realizācijas ir vienāda veida un izmanto kopīgu uzvedību vai statusu, tad abstraktajā klasē ir labāk izmantot.

Ātrums

Nepieciešams vairāk laika, lai atrastu faktisko metodi attiecīgajās klasēs.

Ātri

Funkciju pievienošana

Ja interfeisam pievienosim jaunu metodi, tad mums ir jāatrod visas saskarnes realizācijas un jānosaka jaunās metodes ieviešana.

Ja abstraktajai klasei pievienosim jaunu metodi, tad mums ir iespēja nodrošināt noklusējuma ieviešanu, un tāpēc viss esošais kods varētu darboties pareizi.

Lauki un konstantes

Savienojumos nevar noteikt nevienu lauku.

Abstraktai klasei var būt noteikti lauki un konstantes.

Terseness

Pastāvīgās deklarācijas saskarnē ir visas iespējamās publiskās statiskās finālas.

Koplietojamo kodu var pievienot abstraktai klasei.

Konstantes

Statiskās galīgās konstantes tās var izmantot bez kvalifikācijas klasēs, kas īsteno saskarni.

Ir iespējamas gan gadījumu, gan statiskās konstantes. Konstantes var aprēķināt gan statiskā, gan intializatora kodā.

Trešās puses ērtības

Jebkurai esošai trešās puses klasei var pievienot interfeisa ieviešanu.

Trešās puses klasei ir jābūt pārrakstītai, lai to paplašinātu tikai no abstraktās klases.

ir-salīdzināms vai var darīt

Interfeisi bieži tiek izmantoti, lai aprakstītu klases perifērās spējas, nevis tās centrālo identitāti, piemēram, automobiļu klase varētu ieviest pārstrādājamo interfeisu, kas varētu attiekties uz daudziem citādi pilnīgi nesaistītiem objektiem.

Abstraktā klase nosaka tās pēcnācēju pamatidentitāti. Īstenotās saskarnes uzskaitīs vispārējās lietas, ko klase var darīt, nevis tās, ko klase ir.

Java kontekstā lietotājiem parasti ir jāievieš Runnable interfeiss, nevis jāpaplašina Thread, jo viņi nav ieinteresēti sniegt kādu jaunu Thread funkcionalitāti, viņi parasti vēlas, lai kāds kods varētu darboties patstāvīgi. Viņi vēlas radīt kaut ko, ko var vadīt pavedienā, nevis jauna veida pavedienu. Līdzīgas is-a vs has-a debates parādās, kad jūs nolemjat mantot vai deleģēt.

Iespraust

Lietotājs var uzrakstīt jaunu rezerves moduli interfeisam, kas nesatur vienu kodu, kas ir kopīgs ar esošajām implementācijām. Kad lietotājs ievieš saskarni, tie sākas no nulles bez noklusējuma ieviešanas. Lietotājam ir jāiegūst instrumenti no citām klasēm; nekas nāk ar saskarni, kas nav tikai dažas konstantes. Tas dod lietotājam iespēju īstenot radikāli atšķirīgu iekšējo dizainu.

Lietotājam ir jāizmanto abstrakta klase kā-ir kods bāzes, ar visu tā pavadošo bagāžu, labu vai sliktu. Abstraktās klases autors ir noteicis lietotāju struktūru.

Uzturēšana

Ja klienta kods notiek tikai saskarnes ziņā, jūs varat viegli mainīt konkrēto ieviešanu aiz tās, izmantojot rūpnīcas metodi.

Ja klienta kods runā tikai abstraktajā klasē, jūs varat viegli mainīt konkrēto ieviešanu aiz tās, izmantojot rūpnīcas metodi.

Ieteicams

Saistītie Raksti

  • tautas salīdzinājumi: Starp misiņa un bronzas starpību

    Starp misiņa un bronzas starpību

    Galvenā atšķirība: misiņš ir vara un cinka metāla sakausējums. Bronze ir vara un alvas sakausējums. Varš ir izplatīts zemes metāla veids; tomēr tas ir ļoti mīksts vairumam programmu. Tātad, citi metāli tiek kombinēti ar varu, lai dotu tai atšķirīgas īpašības. Gan misiņa, gan bronza ir tādi vara sakausējumi. Misiņš ir vara un cinka m
  • tautas salīdzinājumi: Starpība starp geju un impotentu

    Starpība starp geju un impotentu

    Galvenā atšķirība: Gay ir termins, ko parasti izmanto, lai atsauktos uz homoseksuāļiem. Tā kā impotents ir termins, ko lieto cilvēki, kuri nespēj vairoties un kuriem ir apmierinošs dzimumakts. Gejs ir termins, ko izmanto homoseksuāļu vietā. Tiek izmantoti cilvēki, kas seksuāli piesaista citus, kuru dzimums ir vienāds. Homoseksuāļi pa
  • tautas salīdzinājumi: Starpība starp zemesriekstu sviestu un želeju

    Starpība starp zemesriekstu sviestu un želeju

    Galvenā atšķirība: zemesriekstu sviests būtībā ir pārtikas paste, kas ir izgatavota no sausiem, sausiem zemesriekstiem. Tā kā želeja ir augļu konservu veids, kas ir dzidrs vai caurspīdīgs un izgatavots no augļu sulas. Viena no visu laiku slavenākajām sviestmaizēm ir zemesriekstu sviests un želeja, kas arī ir sirsnīgi pazīstama kā PB&J. Tā ir populāra Ziemeļ
  • tautas salīdzinājumi: Starpība starp dikonu un jonu

    Starpība starp dikonu un jonu

    Galvenā atšķirība: Doriskā kolonnas atšķirīgā iezīme ir fakts, ka viņiem nav pamata. Pati kolonna ir īsa, smaga un smaga. Kolonnas vārpsta ir pārslīdēta, parasti ar 20 flautām, bet galvaspilsēta ir vienkārša un uzliesmojusi. Jonu kolonnas tiek uzskatītas par augstākajiem un plānākajiem no trīs veidu kolonnām. Jonu kolonnas galvenā at
  • tautas salīdzinājumi: Starpība starp Photosystem I un Photosystem II

    Starpība starp Photosystem I un Photosystem II

    Galvenā atšķirība: Fotosistēma, kuru es saucu par „I”, tā tika atklāta pirms fotosistēmas II. Tomēr fotosintēzes procesā fotosistēma II sāk spēlēt pirms fotosistēmas I. Galvenā atšķirība starp abām ir gaismas viļņa garums, uz kuru tie reaģē. Fotosistēma I absorbē gaismu ar viļņu garumiem, kas ir īsāki par 700 nm, savukārt II fotosistēma absorbē gaismu ar viļņu garumiem, kas ir īsāki par 680 nm. Tomēr tie abi ir vienlīdz svarīgi skābek
  • tautas salīdzinājumi: Starpība starp toniku un sīrupu

    Starpība starp toniku un sīrupu

    Galvenā atšķirība: toniks un sīrups ir divu veidu risinājumi, ko parasti lieto medikamentu jomā kā perorālu šķidruma devu. Sīrupi ir biezi un viskozi šķīdumi. No otras puses, tonizējoši līdzekļi ir ūdenīgāki šķidrumi. Tonic satur mazāk cukura vai cukura aizstājēja nekā sīrups. Toniki un sīrupi, šie vārdi
  • tautas salīdzinājumi: Starpība starp brošūru un prospektu

    Starpība starp brošūru un prospektu

    Galvenā atšķirība: brošūras un brošūras ir sinonīmi. Brošūra ir neliels buklets vai brošūra, ko izmanto, lai informētu cilvēkus par jaunajiem produktiem, kurus uzņēmums vai organizācija ir ieviesusi. No otras puses, prospekts ir drukāta reklāma, kas piedāvā dažādas iespējas un rīcības plānu. Brošūra un prospekts ir di
  • tautas salīdzinājumi: Starpība starp kokteili un kokteili

    Starpība starp kokteili un kokteili

    Galvenā atšķirība: kokteiļi ir jaukts alkoholisks dzēriens, kuram nepieciešams sajaukt vienu spirta veidu ar sulām, bezalkoholiskajiem dzērieniem un citiem augļiem vai sajaukt vairākus alkoholiskos dzērienus ar sulām vai ledus tēju. Mocktail ir jebkurš jaukts dzēriens, kam nav alkohola. Nosaukums mock
  • tautas salīdzinājumi: Atšķirība starp Kungu un Dievu

    Atšķirība starp Kungu un Dievu

    Galvenā atšķirība: „Kungs” ir nosaukums, ko izmanto kā cieņu pret dažādiem dieviem un dievībām. Tiek uzskatīts, ka Dievs ir augstākā persona un ticības galvenais objekts. Dievs ir Visuma radītājs un aizsargs. Kungs un Dievs ir abi nosaukumi, nevis vārdi. Ebreju Bībelē Visvarenais tiek saukts par YHWH izrunu kā “yahveh”. Dievs ir Visaugstākā Būtne

Redaktora Izvēle

Starpība starp Cialis un Viagru

Galvenā atšķirība: Cialis un Viagra darbojas tādā pašā veidā un tiek izmantoti, lai galvenokārt ārstētu erekcijas disfunkciju; tomēr tie atšķiras devās, cenās, cik ilgi nepieciešams, lai sāktu tās iedarbību un cik ilgi tas ilgst. Kaut arī Viagra ir kļuvusi par populārāku zīmolu, Cialis ir kļuvis populārs kā “Weekend Pill”, jo tas ir 36 stundu ilgs efekts, salīdzinot ar Viagras 4 stundu efektu. Erekcijas disfunkcija ir sākusie