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ība starp Blackberry Q10 un Blackberry Z10

    Starpība starp Blackberry Q10 un Blackberry Z10

    Galvenā atšķirība: BlackBerry Q10 ir 3, 1 collu AMOLED kapacitatīvais skārienekrāns, kas ļauj lietotājiem piekļūt datiem, izmantojot pieskārienu un sver aptuveni 139 gramus. Zem ekrāna ir pilna QWERTY tastatūra, kas ir līdzīga vecajām BlackBerrys. Ierīce ir aprīkota ar 1, 5 GHz Cortex-A9 Dual-core TI OMAP 4470 procesoru un PowerVR SGX544 GPU. Blackberry Z10 ir
  • tautas salīdzinājumi: Starpība starp On un Upon

    Starpība starp On un Upon

    Galvenā atšķirība : Termins “pēc” ir formālāks nekā termins “ieslēgts”. Lai gan tās abas norāda uz to pašu nozīmi, to atšķirība ir balstīta uz kontekstu, kādā tās tiek izmantotas. Priekšraksti tiek izmantoti, lai izveidotu teikumu; tas palīdz saistīt lietvārdu, vietvārdu vai lietvārda frāzi ar otru teikuma daļu. Nav noteikta noteikuma vai formula
  • tautas salīdzinājumi: Starpība starp emuāru un tīmekļa vietni

    Starpība starp emuāru un tīmekļa vietni

    Galvenā atšķirība: tīmekļa vietne ir jebkura tīmekļa vietne, kurā ir kāda veida informācija. Blogs ir tīmekļa vietnes veids. Blogs un tīmekļa vietne ir divi dažādi veidi, kā var publicēt informāciju tīmeklī. Būtībā tīmekļa vietne ir jebkura lapa tīmeklī, kurā ir kāda veida informācija. Blogs ir tīmekļa vietnes veids
  • tautas salīdzinājumi: Starpība starp studijām un lasīšanu

    Starpība starp studijām un lasīšanu

    Galvenā atšķirība: studijas un lasīšana ir divi dažādi procesi, kas saistīti ar studiju pabeigšanu. Studēšana nozīmē koncentrēt un veltīt laiku jebkura uzdevuma izpildei vai izpētei; lasot ir saprast un saprast jebkura satura nozīmi. Procesi, kas mācās un lasa, ir savstarpēji saistīti, ti, lasīšana palīdz mācīšanās procesos. Tie ir divi procesi, kas pē
  • tautas salīdzinājumi: Starpība starp Samsung Galaxy S4 Active un HTC One X +

    Starpība starp Samsung Galaxy S4 Active un HTC One X +

    Galvenā atšķirība: Samsung paziņoja, ka tā ir pievienojusi jaunu tālruņa komplektu, kas apvieno vecāko Samsung Xcover izturību ar jaunās Galaxy S4 funkcijām un iespējām. S4 Active ir putekļu un ūdens necaurlaidīgs. Tālrunī ir 5 collu Full HD TFT kapacitatīvais skārienekrāns, kas atšķiras no S4 izmantotās AMOLED. HTC One X + sporta 4, 7
  • tautas salīdzinājumi: Starpība starp ASV un ASV

    Starpība starp ASV un ASV

    Galvenā atšķirība: ASV (ASV) un Amerikas Savienotās Valstis (ASV) abas attiecas uz federālo republiku, kas sastāv no piecdesmit valstīm un federālā apgabala. Tāpēc nav atšķirības starp abiem. Daži cilvēki domā, ka ASV un ASV abi attiecas uz divām dažādām valstīm. Tomēr abas attiecas uz to pašu valsti. ASV un ASV, sk. Ziemeļa
  • tautas salīdzinājumi: Starpība starp vienvirziena un divkāršo elementu

    Starpība starp vienvirziena un divkāršo elementu

    Galvenā atšķirība: Viena kodola procesoram ir tikai viens kodols, kas nozīmē, ka tā var sākt tikai vienu darbību vienlaicīgi. Divkodolu procesors ir centrālās procesora (CPU) tips, kam ir divi pilnīgi izpildes kodoli. Dual core ir kļuvis par sinonīmu Intel Pentium Dual Core. Datori ir strauji attīstījušies no brīža, kad tie tika ieviesti. Sākotnēji datori t
  • tautas salīdzinājumi: Starpība starp Auklītei un Bērnu aukli

    Starpība starp Auklītei un Bērnu aukli

    Galvenā atšķirība: Parasti aukle ir persona, kas uz laiku rūpējas par bērniem, ja vecāki nav mājās. Bērns arī rūpējas par bērniem vecāku prombūtnes laikā. Tomēr viņi ir kvalificēti speciālisti. Atšķirībā no aukles, bērnam ir jāpabeidz valdības apstiprināšanas process. Vecāku pienākums ir rūpēties par saviem bērniem. Tomēr dažreiz viņiem ir jābūt prom
  • tautas salīdzinājumi: Atšķirība starp Cloud un SAAS

    Atšķirība starp Cloud un SAAS

    Galvenā atšķirība: mākonis attiecas uz konfigurējamu skaitļošanas resursu kopumu, piemēram, tīkliem, serveriem, uzglabāšanu, lietojumprogrammām un pakalpojumiem. Baseins nodrošina piekļuvi šiem resursiem pēc pieprasījuma. Šis termins tiek plaši izmantots saistībā ar tīkla sistēmu jaunu arhitektūru, kas darbojas kā pēc pieprasījuma modelis. SAAS attiecas uz programma

Redaktora Izvēle

Atšķirība starp zināšanām un prasmēm

Galvenā atšķirība: vienkāršākajos terminos zināšanas ir tas, ko jūs zināt. Tas ir tas, ko jūs instinktīvi zināt un ko esat iemācījušies gadu gaitā. Prasme, no otras puses, ir kaut kas jums. Zināšanas un prasmes ir divi dažādi termini, kas bieži tiek sajaukti. Galvenā problēma rodas no tā, ka abi no tiem attiecas uz patvaļīgām lietām, ti, lietām, kuras nevar precīzi izmērīt vai kvantificēt, kas arī padara tos grūti aprakstīt un salīdzināt. Tomēr abas ir pilnīgi atšķirīgas viena