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 ziemeļu un dienvidu gaismām

    Starpība starp ziemeļu un dienvidu gaismām

    Galvenā atšķirība: gan ziemeļu, gan dienvidu gaismas ir Auroras. Vienīgā atšķirība starp ziemeļu gaismām un dienvidu gaismām ir tā, ka ziemeļu gaismas notiek Ziemeļpolā, bet dienvidu gaisma notiek dienvidu polā. Ziemeļu gaismas un dienvidu gaisma ir dabas brīnumi. Cilvēki no visas pasaules ceļo tūkstošiem jūdžu, lai redzētu šos brīnumus ar savām acīm. Gan ziemeļu, gan dienvidu apg
  • atšķirība starp: Starpība starp nulli un neko

    Starpība starp nulli un neko

    Galvenā atšķirība: nullei ir skaitliska vērtība '0', un tas ir vesels skaitlis, kas tūlīt pirms 1. Nekas nav kaut ko vai tukšumu. Nekas nav saistīts arī ar neko, ja nekas nepastāv; tas ir stāvoklis, kad nav, vai nav. Nekas un nulle nav bijušas pastāvīgas debates, un daži norāda, ka abi no tiem ir līdzīgi, jo nullei nav nekas. Tomēr daudzi iebil
  • atšķirība starp: Atšķirība starp Alcatel One Touch Idol un Asus FonePad

    Atšķirība starp Alcatel One Touch Idol un Asus FonePad

    Galvenā atšķirība: Alcatel One Touch Idol ir oficiālais mobilā partneris filmam Iron Man 3. Tā piedāvā 4, 7 collu IPS LCD ietilpīgo skārienekrānu ar 16 miljoniem krāsu. Displeja izšķirtspēja ir 540 x 960 pikseļi. Tālrunis ir aprīkots ar Dual-core 1 GHz MediaTek MTK 6577+ un 512 MB RAM. Asus ir paziņojis
  • atšķirība starp: Starpība starp apgrozījumu un peļņu

    Starpība starp apgrozījumu un peļņu

    Galvenā atšķirība: apgrozījums ir to preču un pakalpojumu vērtība, kas sniegti klientiem noteiktā laika periodā. Peļņa pamatā ir ieņēmumi, no kuriem atskaitītas radušās izmaksas. Termins „apgrozījums un peļņa” bieži ir būtisks, lai saprastu uzņēmējdarbības vadīšanas laikā. Šo nosacījumu izpratne var noves
  • atšķirība starp: Starpība starp Intex Aqua Wonder 2 un Micromax A116 Canvas HD

    Starpība starp Intex Aqua Wonder 2 un Micromax A116 Canvas HD

    Galvenā atšķirība: Intex Aqua Wonder 2 ir viens no uzņēmuma iepriekšējiem tālruņiem Intex Aqua Wonder. Aqua Wonder 2 piedāvā MediaTek MT6589 mikroshēmojumu, kas ir Quad-Core 1, 2 GHz procesors un 512 MB RAM. Micromax A116 Canvas HD ir pēctecis ļoti populārajam Micromax A110 Canvas 2 un ir labāks par tās priekšgājēju katrā veidā. Tā piedāvā 5, 0 collu
  • atšķirība starp: Atšķirība starp Nokia Lumia 620 un LG Nexus 4

    Atšķirība starp Nokia Lumia 620 un LG Nexus 4

    Galvenā atšķirība: Viens no jaunākajiem viedtālruņiem ar zīmolu ir Nokia Lumia 620. Nokia Lumia 620 ir paredzēta sākuma līmeņa pircējiem, kuri vēlas izmēģināt Windows Phone 8, bet nevar atļauties tērēt pārāk daudz. Nexus 4 ir Google ceturtais Nexus zīmola Android viedtālrunis. Tā mērķis ir nodrošinā
  • atšķirība starp: Starpība starp reklāmu un reklāmu

    Starpība starp reklāmu un reklāmu

    Galvenā atšķirība: lai gan Ad and Add izskatās un izklausās ļoti līdzīgi, patiesībā tie ir gandrīz vienādi, patiesībā, lai gan tie ir divi pilnīgi atšķirīgi vārdi ar pilnīgi atšķirīgu nozīmi. Reklāma attiecas uz reklāmu, mārketinga tehnikas veidu, savukārt pievienošana attiecas uz papildinājumu, ti, lietas pievienošanu kopā. Bieži vien notiek, ka ir divi v
  • atšķirība starp: Atšķirība starp viedtālruni un funkciju tālruni

    Atšķirība starp viedtālruni un funkciju tālruni

    Galvenā atšķirība: viedtālruņi ir jebkuri mobilie tālruņi, kas ir līdzīgi mini datoram. Viedtālruņi piedāvā dažādas funkcijas, kas nodrošina uzlabotas skaitļošanas iespējas un savienojamību. Funkcijas tālrunis ir mobilo tālruņu kategorija, kurai ir minimālas īpašības un kas ir vidēji cenas. Šie tālruņi ir paredzēti kl
  • atšķirība starp: Atšķirība starp C un C mērķi

    Atšķirība starp C un C mērķi

    Galvenā atšķirība: C ir datora programmēšanas valodas veids. C sākotnēji izstrādāja Dennis Ritchie AT&T Bell Labs laikā no 1969. līdz 1973. gadam. Tai ir brīvā formāta programmas pirmkods. Objective-C ir vispārēja, augsta līmeņa objektu orientēta programmēšanas valoda. Tā pievieno Smalltalk stila ziņojumapmaiņu C programmēšanas valodai. Tā kā tas ir C virsraksts

Redaktora Izvēle

Starpība starp leļļu un mupeti

Galvenā atšķirība: Lelles ir kustams nedzīvs objekts vai skaitļi, kas atgādina personu vai dzīvnieku. Lelles tiek izmantotas leļļu veikalā, un tās kontrolē lelles. Muppets ir arī lelles. Tomēr tie ir īpaši saistīti ar leļļu rakstzīmēm, ko 1955. gadā radīja Džims Hensons. Leļķis ir pārvietojams nedzīvs priekšmets vai skaitļi, kas atgādina personu vai dzīvnieku. Lelles tiek kontrolētas ar lell