logo
  • Galvenais
  • Juridisks
  • Bez Kategorijas
  • Aparatūra
  • Pārstrādāti Pārtikas Produkti

Atšķirība starp abstrakto klasi un saskarni C #

Roderick Dorsey
Programmatūra

Abstrakta klase izskatās daudz kā saskarne, taču OOP iesācējiem šī koncepcija ir mazliet mulsinoša. Konceptuāli abstraktā klase izskatās gluži kā interfeiss, protams, bez jebkādas ieviešanas, tomēr viņiem ir taisnīga atšķirību daļa. Kaut arī abstraktā klase var būt daļēji vai pilnībā ieviesta, saskarne ir jāievieš pilnībā. Vissvarīgākā atšķirība starp abām ir tā, ka abstraktai klasei var būt noklusējuma ieviešana, savukārt saskarne ir tikai metožu definīcija, kurā ir tikai dalībnieku deklarācijas. Sīkāk apspriedīsim abu teorētiskos aspektus.

Kas ir abstraktā klase?

Abstraktā klase ir īpašs klases veids, kas darbojas kā citu klašu pamats un kuru nevar instantizēt. Abstraktās klases ieviešanas loģiku nodrošina tās atvasinātās klases. Lai klasi padarītu par abstraktu, tiek izmantots “abstrakts” modifikators, kas nozīmē, ka no tā atvasinātajā klasē ir jāievieš daži trūkstošie īstenojumi. Tajā ir gan abstrakti, gan ne abstrakti locekļi. Abstraktā klase ir paredzēta, lai nodrošinātu pamata funkcionalitāti, kuru var tālāk koplietot un ignorēt vairākas atvasinātas klases. Ir lietderīgi izvairīties no jebkāda veida koda dublēšanās. Tie ļoti līdzinās saskarnēm, bet ar papildu funkcionalitāti.



Atšķirība starp abstrakto klasi un saskarni C #



Kas ir saskarne?

Interfeiss, no otras puses, nav klase, kurā ir tikai funkcionalitātes paraksts. Tas ir modelis bez ieviešanas. Konceptuāli runājot, tā ir tikai metožu definīcija, kas satur tikai dalībnieku deklarāciju. Tā ir tukša čaula, kurā nav ietverti tās dalībnieki. Tā ir kā abstrakta bāzes klase, kurā ir tikai abstrakti dalībnieki, piemēram, metodes, notikumi, indeksētāji, rekvizīti utt. To nevar tieši izveidot, un tās dalībniekus var ieviest jebkura klase. Turklāt klase var ieviest vairākas saskarnes, tomēr klase var mantot tikai vienu klasi.

Abstraktā klase pret saskarni: atšķirība starp abstrakto klasi un saskarni C #

  1. Daudzkārtējs mantojums - Klase var izmantot tikai vienu abstraktu klasi, tāpēc vairāku mantojumu neatbalsta. No otras puses, interfeiss var atbalstīt vairākkārtēju mantošanu, kas nozīmē, ka klase var mantot jebkuru skaitu mantojumu.
  2. Definīcija gada Abstrakta klase un saskarne C # - Abstraktā klase ir īpašs klases tips, kurā var būt definīcija bez ieviešanas. Ieviešanas loģiku nodrošina tās atvasinātās klases. Tam var būt gan abstraktas, gan arī abstraktas metodes. No otras puses, interfeiss ir tikai modelis, kas neko nevar izdarīt. Tehniski tas ir tikai tukšs apvalks.
  3. Īstenošana - Abstraktā klase var saturēt gan definīciju, gan tās ieviešanu. Tā ir nepilnīga klase, kuru nevar instantizēt. Interfeisam var būt tikai funkcionalitātes paraksts bez koda.
  4. Piekļuves modifikatori - Abstraktai klasei var būt vairāki piekļuves modifikatori, piemēram, apakšsadaļas, funkcijas, īpašības utt., Savukārt saskarnei nav atļauts piekļuves modifikatorus, un visām metodēm jābūt netieši definētām kā publiskas.
  5. Homogenitāte - Abstraktā klase tiek izmantota tāda paša veida, uzvedības un statusa ieviešanai, bet saskarne tiek izmantota ieviešanai, kurai ir kopīgi tikai metodes paraksti.
  6. Deklarācija - Abstraktā klase darbojas kā bāzes klase visām pārējām klasēm, lai tā varētu deklarēt vai izmantot jebkuru mainīgo, kamēr saskarnei nav atļauts deklarēt nevienu mainīgo.
  7. Konstruktora deklarācija - Kaut arī abstraktā klase var būt konstruktora deklarācija, saskarnē nevar būt konstruktora deklarācijas .
  8. Kodols pret perifēriju - Abstraktā klase tiek izmantota klases pamatidentitātes noteikšanai, un to var izmantot viena un tā paša datu tipa objektiem. Interfeiss, no otras puses, tiek izmantots, lai definētu klases perifērijas spējas.
  9. Stingrs pret elastību - Abstrakta klase funkcionalitātes ziņā ir elastīgāka, vismaz no izstrādātāja viedokļa, savukārt saskarne ir stingrāka.

Abstrakta klase pret saskarni: tabulas forma

Abstrakta klase

Saskarne

Abstraktai klasei var būt visi piekļuves modifikatori dalībnieku funkciju, apakšsadaļu un rekvizītu deklarēšanai. Interfeisam nav atļauts piekļuves modifikatorus dalībnieku funkciju, apakšsadaļu, rekvizītu uc deklarēšanai. Tiek pieņemts, ka visi dalībnieki ir netieši publiski.
Klase var izmantot tikai vienu abstraktu klasi. Klase var mantot jebkuru saskarņu skaitu.
Vairāku mantojumu abstraktā klasē neatbalsta. Interfeiss var atbalstīt vairāku mantojumu.
Tehniski tā ir klase, kas var saturēt definīciju un tās ieviešanu, var arī nebūt. Interfeisam var būt tikai funkcionalitātes paraksts, tāpēc tas būtībā ir tukšs apvalks.
Abstraktā klasē var būt dalībnieki. metodes, definētās metodes un metodes. Saskarne var saturēt tikai metodes un uzaicinājumus.
Tas nosaka klases galveno identitāti un tiek izmantots, lai aprakstītu tā paša datu veida objektus. To lieto, lai aprakstītu klases perifērās spējas.
Abstraktas klases dalībnieki nevar būt statiski, ja vien tas nav pilntiesīgs dalībnieks. Interfeisa dalībnieki nevar būt statiski.
Tas ir ideāli piemērots tāda paša veida un kopīgas uzvedības īstenošanai. Saskarnes ir labāk izmantot, ja vairākām ieviešanām ir kopīgi tikai metodes paraksti.
Tam var būt konstruktora deklarācija. Tam nevar būt konstruktora deklarācijas .
Abstraktā klasē ir iepriekš noteikti lauki un konstruktori. Saskarnēs laukus nevar definēt.
Tam var būt gan abstraktas, gan abstraktas metodes. Tam var būt tikai abstraktas metodes.

Kopsavilkums

Kāda ir atšķirība starp abstrakto klasi un saskarni? Tas, iespējams, ir viens no visbiežāk uzdotajiem jautājumiem jebkurā tehniskajā intervijā. Jebkurā C # apmācībā jūs, visticamāk, atradīsit daudz informācijas par abstraktajām klasēm un saskarnēm, tomēr izpratne par atšķirību starp abām ir diezgan grūta. Jūs varat apvienot visu informāciju, ko varat atrast, un joprojām nevarat iegūt pietiekami daudz. Nu, konceptuāli abi ir vissvarīgākie termini programmēšanā un ir diezgan vienādi, tomēr tie ļoti atšķiras funkcionalitātes ziņā. Lai gan abstraktā klase ir īpašs klases tips, kas darbojas kā pamats citām klasēm, interfeiss, no otras puses, ir tikai tukšs apvalks, kurā ir tikai dalībnieku deklarācijas.



Ieteicams

Atšķirība starp HTC Fuze un HTC Touch Pro
Atšķirība starp HTC Fuze un HTC Touch Pro
Roderick Dorsey
Sīkrīki
Šons Holijs atbrīvos jūs tūlīt
Šons Holijs atbrīvos jūs tūlīt
Roderick Dorsey
Žurnāls
Linkolna starpposmi
Linkolna starpposmi
Roderick Dorsey
Amerikas Pilsoņu Karš
Starpība starp poniju un zirgu
Starpība starp poniju un zirgu
Roderick Dorsey
Dzīvnieki
Uzpildes stacijas debesīs
Uzpildes stacijas debesīs
Roderick Dorsey
Aviācijas Vēsture
Čikāgas sacīkšu sacelšanās 1919. gadā: kā Jevgeņija Viljamsa nāve satricināja Ameriku
Čikāgas sacīkšu sacelšanās 1919. gadā: kā Jevgeņija Viljamsa nāve satricināja Ameriku
Roderick Dorsey
Bez Kategorijas
Jaunā muzeja izstāde atklāj Otrā pasaules kara “Spoku armijas” noslēpumus
Jaunā muzeja izstāde atklāj Otrā pasaules kara “Spoku armijas” noslēpumus
Roderick Dorsey
Otrais Pasaules Karš
Kā doties iepirkties veikalā, kad vienkārši nevarat izturēt aukstumu, lietu - jebkādi nelabvēlīgi laikapstākļi
Kā doties iepirkties veikalā, kad vienkārši nevarat izturēt aukstumu, lietu - jebkādi nelabvēlīgi laikapstākļi
Roderick Dorsey
Stils
21 veids, kā valkāt kaķu acu grimu, tieši no 2012. gada rudens modes nedēļas
21 veids, kā valkāt kaķu acu grimu, tieši no 2012. gada rudens modes nedēļas
Roderick Dorsey
Skaistums
Kolagēna un elastīna atšķirības
Kolagēna un elastīna atšķirības
Roderick Dorsey
Bioloģija

Populārākās Stāsti

Copyright © Visas Tiesības Aizsargātas | asayamind.com