Abstrakcija programmēšanā attiecas uz nevajadzīgas, kaut arī ļoti svarīgas informācijas slēpšanu un tikai noteiktas atslēgas vai nepieciešamās informācijas padarīšanu lietotājam redzamu. Tas ir iespējams, izmantojot abstraktās klases.
Abstraktā klase C # būtībā ir klase, kas neļauj izveidot objektu. “Abstract” ir atslēgvārds vai modifikators, kas padara šo konkrēto klasi vai metodi abstraktu vai ierobežotu. Abstraktai klasei var piekļūt, tikai izmantojot mantošanu no citas klases.
Atslēgas
- Abstraktās klases ir nepilnīgas klases, kuras nevar izveidot, bet kalpo par pamatu citiem, no kurām mantot.
- Tie satur vismaz vienu virtuālu funkciju, kas nozīmē, ka tai nav ieviešanas, un tā ir jādefinē jebkurai atvasinātai klasei.
- Abstraktajām klasēm var būt dalībnieku mainīgie un dalībnieku funkcijas ar ieviešanu, taču tām nevar piekļūt, izmantojot abstraktās klases objektus.
Abstraktās klases īpašības un komponenti C#
Lai varētu uzsākt abstraktu klasi vai tai piekļūtu, ir jābūt noteiktiem faktoriem. Tie ir uzskaitīti šādi.
- Abstrakta klase izveido bāzes klasi, kurai parasti piekļūst vairākas atvasinātas klases. Programmētājiem ir jāizveido atvasināta klase, lai izmantotu vai ieviestu abstraktu klasi.
- Tādējādi abstraktā klase ir jāpārmanto apakšklasēm, kas var pat ignorēt funkciju.
- Katrai abstraktai klasei ir nepieciešama vismaz viena abstraktā metode.
Abstraktas klases piemērs C#
Tā kā mehānisms ir sarežģīts un saprotams tikai tiem, kas pārzina programmēšanu valoda, labāk ir sākt ar vienkāršu piemēru, lai palīdzētu izskaidrot jēdzienu.
Pieņemsim, ka pastāv klase “Tree” ar esošu izstrādātu metodi, kas pazīstama kā “tips”. Nekas cits nav definēts un cita konkrēta informācija netiek sniegta – nav zināms ne koka veids, ne iespējamie veidi.
Ja ir pieejams konkrēts koka paraugs, tad tiek izveidota atsevišķa klase, pārmantojot pamatklasi Tree. Ideja ir tāda, ka jaunā klase, teiksim Pine vai ozols, nevar modificēt bāzes klases, tas ir, koka, konstrukciju vai definīciju. Tam ir jāizveido sava klase, kas iegūta no klases Tree, un jādefinē cita metode, kas mantota no bāzes.
Abstraktās klases priekšrocības C # valodā
- Lai gan apakšklases var izvēlēties ieviest vai ignorēt abstraktu klasi, noteikti izmaiņas var izveidot, kas liek īstenot noteiktu funkciju.
- Tādējādi, veidojot abstraktu klasi, pastāv liela elastība attiecībā uz to, kuras metodes obligāti jāīsteno.
- Programmētājs var izvēlēties, cik abstraktu metožu viņš vēlas abstraktā klasē. Ir iespējams arī rakstīt kodu, neiekļaujot abstraktas metodes.
- Abstrakta klase ir jādefinē tikai vienu reizi, un tai var piekļūt vai atvasināt no tik daudz reižu, cik nepieciešams.
- Abstraktā klase ir ļoti noderīga, ja ir tādu klašu kopums, kurām ir zināma līdzības pakāpe, bet kuras atšķiras abstraktās klases īstenošanā.
Abstraktās klases trūkumi C#
- Abstraktu klasi var pievienot klašu hierarhijai tikai tad, ja nav abstraktu klašu.
- Uz jebkuras abstraktas klases objektiem var būt tikai atsauces, tos nevar izveidot.
- Pat ja abstraktās klases nevar izveidot, tā nepieļauj statiskus mainīgos vai metodes.
- https://books.google.co.in/books?hl=en&lr=&id=UbJa11wLcqYC&oi=fnd&pg=PA125&dq=Abstract+Class+in+C%23&ots=y9lmboLlHj&sig=kk5oYAJSHpmo-FyHphcAlkUh4cc&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
- https://books.google.co.in/books?hl=en&lr=&id=-w9ftEtwPGwC&oi=fnd&pg=PP8&dq=Abstract+Class+in+C%23&ots=XXCx6-5nlm&sig=CYfs0myaTnm1anSz4QUGcZ65uS4&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
Pēdējo reizi atjaunināts: 11. gada 2023. jūnijā
Sandeep Bhandari ir ieguvis inženierzinātņu bakalaura grādu datorzinātnēs Tapara universitātē (2006). Viņam ir 20 gadu pieredze tehnoloģiju jomā. Viņam ir liela interese par dažādām tehniskajām jomām, tostarp datu bāzu sistēmām, datortīkliem un programmēšanu. Vairāk par viņu varat lasīt viņa vietnē bio lapa.
Es atklāju, ka šis ieraksts ir nedaudz ironisks savā prezentācijā. Tomēr tas padara skaidrojumu diezgan interesantu.
Šis raksts sniedz ļoti informatīvu skaidrojumu par programmēšanas abstrakciju. Man tas patiešām šķiet aizraujoši.
Piekrītu, Kūper. Šis ir ļoti informatīvs raksts.
Koka piemērs, lai izskaidrotu abstrakto klasi, ir vienkārši ģeniāls. Ļoti labi pastrādājis autors.
Jā, Helēna. Lielisks piemērs koncepcijas ilustrēšanai.
Es nevaru tev vairāk piekrist, Helēna.
Rakstā ir labi izklāstītas priekšrocības un trūkumi. Visaptveroša atsauce ikvienam, kas vēlas uzzināt par abstraktajām nodarbībām C#.
Pilnīgi piekrītu tev, Ogrehem. Tas ir informatīvs gabals.
Labi apkopots, Ogrehem. Lielisks resurss programmētājiem.
Šajā rakstā ir ne tikai izceltas abstraktās klases priekšrocības, bet arī trūkumi C # valodā. Patiešām rūpīga analīze!
Pilnīgi noteikti, Mjones. Tas ir līdzsvarots skatījums uz tēmu.
Komiskais tonis, ko izmanto, lai izskaidrotu tēmu, sniedz atsvaidzinošu skatījumu. Slava autoram!
Es nevarētu tev vairāk piekrist, Dean89.
Pilnīgi noteikti, Dīns89. Lielisks humora un informācijas sajaukums.
Šī raksta argumentētā pieeja ir patiesi ievērības cienīga. Tas piedāvā līdzsvarotu priekšstatu par koncepciju.
Es piekrītu, Yasmine. Rūpīgā analīze ir apsveicama.
Man šķiet ļoti intriģējoša abstraktas klases veidošanas elastība. Šajā rakstā skaidri un saprotami izklāstīti gan plusi, gan mīnusi.
Pilnīgi piekrītu tev, Ričards. Tā ir lieliska lasāmviela.
Es ļoti novērtēju detalizētu abstraktās klases īpašību un komponentu sadalījumu C #. Lielisks raksts!
Piekrītu, Sfoks. Tā ir svarīga informācija ikvienam, kas apgūst C#.
Tieši manas domas, Sfoks. Lielisks skaidrojums.
Es domāju, ka šeit minētās priekšrocības patiesi parāda abstraktās klases lietderību. Sniegtas lieliskas atziņas.
Pilnīgi noteikti, Viljams. Priekšrocības ir labi formulētas.