Atšķirība Starp Abstrakto Klasi Un Saskarni

Atšķirība Starp Abstrakto Klasi Un Saskarni
Atšķirība Starp Abstrakto Klasi Un Saskarni

Video: Atšķirība Starp Abstrakto Klasi Un Saskarni

Video: Atšķirība Starp Abstrakto Klasi Un Saskarni
Video: Installing LED Tape Lighting 2024, Novembris
Anonim

Abstrakta klase vs saskarne

Abstraktā klase un saskarne ir divi uz objektu orientēti konstrukcijas, kas atrodamas daudzās objektorientētās programmēšanas valodās, piemēram, Java. Abstrakto klasi var uzskatīt par parastas (konkrētas) klases abstraktu versiju, savukārt saskarni - par līguma izpildes līdzekli. Abstraktā klase ir klase, kuru nevar inicializēt, bet kuru var pagarināt. Interfeiss ir veids, kas jāievieš citām klasēm. Java valodā abstraktās klases tiek deklarētas, izmantojot Abstract atslēgvārdu, savukārt interfeisa definēšanai tiek izmantots interfeisa atslēgvārds.

Kas ir abstraktā klase?

Parasti abstraktās klases, kas pazīstamas arī kā Abstract Base Classes (ABC), nevar instantizēt (šīs klases instanci nevar izveidot). Tātad, abstraktām klasēm ir nozīme tikai tad, ja programmēšanas valoda atbalsta mantošanu (spēja izveidot apakšklases, paplašinot klasi). Abstraktās klases parasti attēlo abstraktu jēdzienu vai entītiju ar daļēju vai bez ieviešanas. Tāpēc abstraktās klases darbojas kā vecāku klases, no kurām tiek iegūtas bērnu klases, lai bērnu klasei būtu kopīgas vecāku klases nepilnīgās iezīmes, un to pabeigšanai var pievienot funkcionalitāti.

Abstraktās klasēs var būt abstraktas metodes. Apakšklases, kas paplašina abstraktu klasi, var ieviest šīs (pārmantotās) abstraktās metodes. Ja bērnu klase īsteno visas šādas abstraktās metodes, tā ir konkrēta klase. Bet, ja tā nenotiek, bērnu klase kļūst arī par abstraktu klasi. Tas viss nozīmē to, ka tad, kad programmētājs izvirza klasi kā abstraktu, viņa saka, ka klase būs nepilnīga un tajā būs elementi, kas jāpabeidz mantotajām apakšklasēm. Tas ir jauks veids, kā izveidot līgumu starp diviem programmētājiem, kas vienkāršo uzdevumus programmatūras izstrādē. Programmētājam, kurš raksta kodu, lai iegūtu mantojumu, precīzi jāievēro metožu definīcijas (bet, protams, tai var būt sava ieviešana).

Kas ir saskarne?

Saskarne ir abstrakts veids, ko izmanto, lai norādītu līgumu, kas būtu jāievieš klasēm, kuras ievieš šo saskarni. Interfeisa atslēgvārds tiek izmantots, lai definētu saskarni, un Implements atslēgvārds tiek izmantots, lai interfeisu ieviestu pēc klases (Java programmēšanas valodā). Parasti saskarnē būs tikai metodes paraksti un nemainīgas deklarācijas. Jebkurai saskarnei, kas ievieš konkrētu saskarni, būtu jāīsteno visas saskarnē definētās metodes vai tā būtu jādeklarē kā abstrakta klase. Java valodā objekta atsauces tipu var definēt kā interfeisa tipu. Bet šim objektam jābūt vai nu nulles vērtībā, vai arī tam ir jābūt klases objektam, kas īsteno šo konkrēto saskarni. Izmantojot Java Java atslēgvārdu, vienā klasē varat ieviest vairākas saskarnes.

Kāda ir atšķirība starp abstrakto klasi un saskarni?

Abstraktās klases parasti attēlo abstraktu jēdzienu vai entītiju ar daļēju vai bez ieviešanas. No otras puses, interfeiss ir abstrakts veids, ko izmanto, lai norādītu līgumu, kas būtu jāievieš pa klasēm. Abstraktām klasēm vajadzētu būt iedzimtām (vai paplašinātām), savukārt saskarnes būtu jāievieš. Abstraktās klasēs var būt abstraktas metodes, bet saskarnē - tikai abstraktas metodes. Abstraktās klasēs var būt jebkurš mainīgais, bet saskarnes var definēt tikai konstantes. Klase nevar mantot no vairāk nekā vienas abstraktas klases, bet var ieviest vairākas saskarnes. Interfeiss nevar ieviest citu saskarni. Tomēr interfeiss var paplašināt klasi.

Ieteicams: