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

  • atšķirība starp: Starpība starp BMI un BMR

    Starpība starp BMI un BMR

    Galvenā atšķirība: ĶMI ir personas pašreizējā ķermeņa masas statistiskais mērījums, kas attiecas uz augstumu. BMR ir kaloriju skaits, ko persona katru dienu patērē, pat ja viņi nav daudz darījuši, nevis gulēt gultā, nedarot neko. ĶMI un BMR ir divas metodes, ko parasti izmanto kāds, kurš cenšas saglabāt fitnesa vai zaudēt svaru. Tomēr abas metodes ir p
  • atšķirība starp: Atšķirība starp LG Optimus F5 un LG Optimus F7

    Atšķirība starp LG Optimus F5 un LG Optimus F7

    Galvenā atšķirība: LG Optimus F5 ir 4, 3 collu ekrāns un darbosies Android v4.1.2 (Jelly Bean). Tā ir veidota ar Dual-core 1, 2 GHz procesoru, 1GB RAM un 5MP kameru. LG Optimus F7, savukārt, piedāvā 4, 7 collu ekrānu un darbosies ar Android 4.1.2 (Jelly Bean). Runājot par aparatūru, tai būs 1, 5 GHz divkodolu procesors, 2 GB RAM un iekšējā atmiņa 8 GB. Ar pastāvīgu te
  • atšķirība starp: Starpība starp Twitter un Facebook

    Starpība starp Twitter un Facebook

    Galvenā atšķirība: Twitter un Facebook ir divas dažādas sociālo tīklu vietnes. Viņi ir būtiski atšķirīgi to veidošanā un veidā, kādā tie tiek izmantoti. Galvenā atšķirība starp abiem ir fakts, ka, lai gan Facebook ir sociālā tīkla pakalpojums, Twitter ir sociālā tīkla pakalpojums un microblogging pakalpojums. Twitter un Facebook ir div
  • atšķirība starp: Starpība starp Nokia Lumia 820 un XOLO X1000

    Starpība starp Nokia Lumia 820 un XOLO X1000

    Galvenā atšķirība: Viens no pirmajiem viedtālruņiem ar zīmolu Nokia Lumia 820. Nokia Lumia 820 bija pirmais pirmais tālrunis, kas jāizstrādā, darbojoties ar Windows Phone 8. Tā tika uzsākta 2012. gada novembrī kā nedaudz lētāka alternatīva Nokia 920. XOLO ir ieviesis Intel XOLO X1000 viedtālruni. XOLO x1000 darboj
  • atšķirība starp: Atšķirība starp Samsung Galaxy S Duos un Nokia Lumia 520

    Atšķirība starp Samsung Galaxy S Duos un Nokia Lumia 520

    Galvenā atšķirība: Samsung Galaxy S Duos ir divējāda SIM tālrunis, kas tika palaists 2012. gada septembrī. Tālrunī ir 4 collu TFT ietilpīgs skārienekrāns ar aptuveni 233 ppi blīvumu. Ierīce ir aprīkota ar Samsung TouchWiz lietotāja interfeisu Android 4.0.4 ICS. Nokia Lumia 520 ir 4 collu IPS ietilpīgs skārienekrāns, kas piedāvā 480x800 pikseļu displeju, kas piedāvā aptuveni 233 ppi. Tālrunī ir 8 GB iekšējā
  • atšķirība starp: Atšķirība starp HTC One X + un Samsung Galaxy S3

    Atšķirība starp HTC One X + un Samsung Galaxy S3

    Galvenā atšķirība: HTC One X + sporta 4, 7 collu super LCD 2 skārienekrāns ar aptuveni 312 ppi pikseļu blīvumu, kas nozīmē, ka ekrāns ir diezgan satriecošs, un tas nerāda nevienu pikseļu. Ierīce darbojas ar 1, 7 GHz četrkodolu NVIDIA Tegra 3 procesu, kas padara to ātrāku nekā sākotnējais HTC One X. Galaxy S3 ir šīfera
  • atšķirība starp: Starpība starp centru un centru

    Starpība starp centru un centru

    Galvenā atšķirība: vārdam “centrs” un “centram” ir tāda pati nozīme. Vienīgā atšķirība ir vieta, kurā vārds tiek lietots. Tagad, ja jūs gribētu runāt kā britu persona, pareizais vārds būtu „centrs”, bet Amerikā tas ir „centrs”. Termini "centrs" un "centrs" bieži vien neskaidri daudziem cilvēkiem, kuri mācās angļu valodu kā otro valodu vai pāriet no Lielbritānijas uz ASV un otrādi. Ir kļuvis zināms, ka ir daudz vārdu, kas tie
  • atšķirība starp: Atšķirība starp Android un Android One

    Atšķirība starp Android un Android One

    Galvenā atšķirība: galvenā atšķirība starp Android un Android One, ir fakts, ka Android ir Google operētājsistēma, savukārt Android One ir standarts, kas ir piemērojams operētājsistēmai Android. Android ir viena no vadošajām mobilo operētājsistēmām (OS). Tas ir balstīts uz Linux kodolu, un to izstrādā Google. Pašlaik Android, Apple
  • atšķirība starp: Starpība starp MDF un saplāksni

    Starpība starp MDF un saplāksni

    Galvenā atšķirība: MDF ir vidēja blīvuma šķiedru plātne. Tas ir inženierijas izstrādājums. To veido, sadalot koksnes atlikumus koka šķiedrās. Šīs koksnes šķiedras pēc tam tiek kombinētas ar vasku un sveķu saistvielu. Tad maisījums tiek saplacināts un izgatavots paneļos, izmantojot augstu temperatūru un spiedienu. No otras puses, saplāksn

Redaktora Izvēle

Atšķirība starp MS Office Student un Professional

Galvenā atšķirība: Office mājas un studentu pakete piedāvā MS Word, MS Excel, MS PowerPoint un MS OneNote. Šī pakete ir arī lētākais iepakojums no visiem trim. Cena no 2010. gada studentu paketes ir no 100 līdz 150 ASV dolāriem. Office Professional piedāvā visus iepriekš minētos, tostarp MS Access, MS Outlook un MS Publisher, un cenas paketei ir no $ 350 līdz $ 500. Microsoft ir apvi