Apstrakcija u programiranju odnosi se na prikrivanje nepotrebnih, iako vrlo važnih informacija i stavljanje samo određenih ključnih ili potrebnih informacija vidljivih korisniku. To je omogućeno korištenjem apstraktnih klasa.
Apstraktna klasa u C# je u biti klasa koja ne dopušta stvaranje objekta. 'Sažetak' je ključna riječ ili modifikator koji uzrokuje da određena klasa ili metoda bude apstraktna ili ograničena. Apstraktnoj klasi se može pristupiti samo putem nasljeđivanja od druge klase.
Ključni za poneti
- Apstraktne klase su nepotpune klase koje se ne mogu instancirati već služe kao baza za nasljeđivanje drugih.
- Sadrže barem jednu čistu virtualnu funkciju, što znači da nema implementaciju i mora biti definirana bilo kojom izvedenom klasom.
- Apstraktne klase mogu imati varijable članice i funkcije članice s implementacijom, ali im se ne može pristupiti preko objekata apstraktne klase.
Svojstva i komponente apstraktne klase u C#
Određeni čimbenici moraju postojati da bi se apstraktna klasa pokrenula ili joj se pristupilo. Oni su navedeni kako slijedi.
- Apstraktna klasa stvara osnovnu klasu kojoj obično pristupa nekoliko izvedenih klasa. Programeri moraju stvoriti izvedenu klasu da bi koristili ili implementirali apstraktnu klasu.
- Apstraktnu klasu stoga moraju naslijediti podklase, koje čak mogu nadjačati funkciju.
- Svaka apstraktna klasa zahtijeva najmanje jednu apstraktnu metodu.
Primjer apstraktne klase u C#
Budući da je mehanizam kompliciran i razumljiv samo onima koji su upoznati s programiranjem jezik, bolje je započeti s jednostavnim primjerom koji će vam pomoći objasniti koncept.
Pretpostavimo da postoji klasa 'Stablo' s postojećom dizajniranom metodom poznatom kao 'tip'. Ništa drugo nije definirano, niti su navedene nikakve druge posebne informacije – ne zna se vrsta stabla ili mogući tipovi.
Ako je dostupan određeni primjer stabla, tada se stvara zasebna klasa nasljeđivanjem osnovne klase, Stabla. Ideja je da nova klasa, recimo Pine ili Hrast, ne može modificirati konstrukciju ili definiciju osnovne klase, odnosno stabla. Mora stvoriti svoju klasu, izvedenu iz klase Stablo, i definirati drugu metodu naslijeđenu iz baze.
Prednosti apstraktne klase u C#
- Dok potklase mogu odabrati implementaciju ili nadjačavanje apstraktne klase, određene izmjene mogu se napraviti koje zahtijevaju implementaciju određene funkcije.
- Stoga postoji veliki stupanj fleksibilnosti pri dizajniranju apstraktne klase u pogledu toga koje metode moraju biti imperativno implementirane.
- Programer može odabrati koliko apstraktnih metoda želi u apstraktnoj klasi. Također je moguće napisati kod bez uključivanja apstraktnih metoda.
- Apstraktna klasa mora biti definirana samo jednom i može joj se pristupiti ili iz nje se može izvesti onoliko puta koliko je potrebno.
- Apstraktna klasa je vrlo korisna kada postoji skup klasa koje imaju određeni stupanj sličnosti, ali se razlikuju u implementaciji apstraktne klase.
Nedostaci apstraktne klase u C#
- Apstraktna klasa može se dodati u hijerarhiju klasa samo ako apstraktne klase ne postoje.
- Objekti bilo koje apstraktne klase mogu se samo referencirati, nikada se ne mogu kreirati.
- Iako se apstraktne klase ne mogu instancirati, ne dopuštaju statičke varijable ili metode.
- 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
Zadnje ažuriranje: 11. lipnja 2023
Sandeep Bhandari ima diplomu inženjera računala na Sveučilištu Thapar (2006.). Ima 20 godina iskustva u području tehnologije. Ima veliki interes za razna tehnička područja, uključujući sustave baza podataka, računalne mreže i programiranje. Više o njemu možete pročitati na njegovom bio stranica.
Smatram da je ovaj post pomalo ironičan u svojoj prezentaciji. Međutim, to čini objašnjenje vrlo zanimljivim.
Ovaj članak daje vrlo informativno objašnjenje apstrakcije u programiranju. Zaista mi je fascinantno.
Slažem se, Cooper. Ovo je vrlo informativan članak.
Primjer stabla za objašnjenje apstraktne klase je jednostavno genijalan. Vrlo dobro od strane autora.
Da, Helena. Savršen primjer za ilustraciju koncepta.
Ne mogu se više složiti s tobom, Helena.
Članak lijepo ocrtava prednosti i nedostatke. Opsežna referenca za svakoga tko je zainteresiran za učenje o apstraktnim klasama u C#.
Potpuno se slažem s tobom, Ograhame. To je informativan prilog.
Lijepo sažeto, Ograhame. Sjajan resurs za programere.
Ovaj članak ne samo da naglašava prednosti, već pokriva i nedostatke apstraktne klase u C#. Zaista temeljita analiza!
Apsolutno, Mjones. To je dobro uravnotežen pogled na temu.
Komični ton korišten za objašnjenje teme pruža osvježavajuću perspektivu. Svaka čast autoru!
Ne mogu se više složiti s tobom, Dean89.
Apsolutno, Dean89. Sjajan spoj humora i informacija.
Argumentativni pristup ovog članka doista je vrijedan pažnje. Nudi uravnotežen pogled na koncept.
Slažem se, Yasmine. Temeljita analiza je za svaku pohvalu.
Smatram da je fleksibilnost dizajniranja apstraktne klase vrlo intrigantna. Ovaj je članak na jasan i razumljiv način predstavio i prednosti i mane.
Potpuno se slažem s tobom, Richards. Sjajno štivo.
Zaista cijenim detaljnu raščlambu svojstava i komponenti apstraktne klase u C#. Sjajan članak!
Slažem se, Sfox. To je ključna informacija za svakoga tko uči C#.
Točno moje mišljenje, Sfox. Izvrsno objašnjenje.
Mislim da ovdje spomenute prednosti uistinu pokazuju korisnost apstraktne klase. Sjajni uvidi.
Apsolutno, Williams. Prednosti su dobro artikulirane.