Atšķirība starp ieviešanu un pagarināšanu

Īsteno vs Pagarina

Īstenojumi un paplašinājumi ir divi Java programmēšanas valodā atrodami atslēgas vārdi, kas nodrošina iespēju pievienoto funkcionalitāti pārnest uz jaunu klasi. Īstenošanas atslēgvārds tiek tieši izmantots interfeisa ieviešanai, savukārt paplašina atslēgvārdu - mantošanai no (super) klases. Lūdzu, ņemiet vērā, ka mantojuma jēdzieni un saskarnes ir sastopami lielākajā daļā citu uz objektu orientētu programmēšanas valodu, piemēram, C # un VB.NET, taču tie piedāvā atšķirīgu sintaksi vai atslēgvārdus šo jēdzienu piemērošanai. Šis raksts koncentrējas tikai uz Java definētajiem atslēgvārdiem Īsteno un paplašina.

Pagarina

Paplašina atslēgvārdu, lai Java programmēšanas valodā ieviestu mantojuma jēdzienu. Mantojums būtībā nodrošina koda atkārtotu izmantošanu, ļaujot paplašināt esošās klases īpašības un izturēšanos ar nesen definētu klasi. Kad jauna apakšklase (vai atvasināta klase) paplašina superklases (vai vecāku klasi), šī apakšklase mantos visus superklases atribūtus un metodes. Apakšklase pēc izvēles var ignorēt uzvedību (nodrošināt metodēm jaunu vai paplašinātu funkcionalitāti), kas mantota no vecāku klases. Apakšklase nevar paplašināt Java vairākas superklases. Tāpēc jūs nevarat izmantot pagarinājumus vairāku mantojumu gadījumos. Lai iegūtu vairākus mantojumus, jums jāizmanto saskarnes, kā paskaidrots zemāk.

Īsteno

Īsteno atslēgvārdu Java programmēšanas valodā tiek izmantots interfeisa ieviešanai klasē. Java saskarne ir abstrakts tips, ko izmanto, lai norādītu līgumu, kas jāīsteno klasēm, kuras ievieš šo saskarni. Parasti saskarnē būs tikai metodes paraksti un pastāvīgas deklarācijas. Jebkurai saskarnei, kas ievieš noteiktu saskarni, jāīsteno visas saskarnē noteiktās metodes vai tā jādeklarē kā abstrakta klase. Java programmā objekta atsauces veidu var definēt kā interfeisa tipu. Bet šim objektam jābūt vai nu nullim, vai arī tam vajadzētu būt klases objektam, kurš ievieš šo konkrēto saskarni. Izmantojot Java atslēgvārdu Implements, vienā klasē var ieviest vairākas saskarnes. Saskarne nevar ieviest citu saskarni. Tomēr interfeiss var pagarināt klasi.

Atšķirība starp ieviešanu un pagarināšanu

Lai arī ieviešana un paplašināšana ir divi atslēgas vārdi, kas nodrošina atribūtus un izturēšanos pret klasēm Java programmēšanas valodā, tie tiek izmantoti diviem dažādiem mērķiem. Īstenošanas atslēgvārds tiek izmantots klasei, lai ieviestu noteiktu saskarni, bet paplašina atslēgvārdu, tiek izmantots apakšklasei, lai paplašinātu to no superklases. Kad klase ievieš saskarni, šai klasei jāīsteno visas saskarnē noteiktās metodes, bet, kad apakšklase paplašina superklases, tā var vai nevar būt augstāka par metodēm, kas iekļautas vecāku klasē. Visbeidzot, vēl viena galvenā atšķirība starp Īsteno un Pagarina ir tā, ka klase var ieviest vairākas saskarnes, bet Java to var paplašināt tikai no vienas superklases. Parasti piederumu (saskarņu) lietošana tiek uzskatīta par labvēlīgāku salīdzinājumā ar paplašinājumu (mantojums) izmantošanu vairāku iemeslu dēļ, piemēram, lielāka elastība un spēja samazināt savienošanu. Tāpēc praksē priekšroka dodama programmēšanai uz interfeisu, nevis paplašināšanai no bāzes klasēm.