Verskil tussen abstrakte klas en betonklas

Verskil tussen abstrakte klas en betonklas
Verskil tussen abstrakte klas en betonklas

Video: Verskil tussen abstrakte klas en betonklas

Video: Verskil tussen abstrakte klas en betonklas
Video: Чем отличаются прокси и VPN? 2024, Julie
Anonim

Abstract Class vs Concrete Class

Die meeste van die gewilde moderne objekgeoriënteerde programmeertale soos Java en C is klasgebaseer. Hulle bereik die objekgeoriënteerde konsepte soos inkapseling, oorerwing en polimorfisme deur die gebruik van klasse. Klasse is 'n abstrakte voorstelling van werklike wêreldobjekte. Klasse kan óf konkreet óf abstrak wees, afhangende van die vlak van implementering van hul metodefunksionaliteite. 'n Betonklas implementeer al sy metodes volledig. 'n Abstrakte klas kan beskou word as 'n beperkte weergawe van 'n gewone (konkrete) klas, waar dit gedeeltelik geïmplementeerde metodes kan bevat. Tipies word na betonklasse verwys as (net) klasse.

Wat is Betonklas?

Die verstekklas is 'n konkrete klas. Die klassleutelwoord word gebruik om klasse te definieer (bv. in Java). En gewoonlik word daar bloot na hulle verwys as klasse (sonder die byvoeglike naamwoord konkreet). Konkrete klasse beeld die konseptuele voorstelling van werklike wêreldobjekte uit. Klasse het eienskappe wat eienskappe genoem word. Eienskappe word geïmplementeer as globale en instansie veranderlikes. Metodes in die klasse verteenwoordig of definieer die gedrag van hierdie klasse. Metodes en eienskappe van klasse word die lede van die klas genoem. Tipies word inkapseling bereik deur die eienskappe privaat te maak, terwyl openbare metodes geskep word wat gebruik kan word om toegang tot daardie eienskappe te verkry. 'n Voorwerp is die geval van 'n klas. Oorerwing laat die gebruiker toe om klasse (genoem subklasse) uit ander klasse (genoem superklasse) uit te brei. Polimorfisme laat die programmeerder toe om 'n voorwerp van 'n klas te vervang in die plek van 'n voorwerp van sy superklas. Tipies word die selfstandige naamwoorde wat in die probleemdefinisie gevind word, direk klasse in die program. En insgelyks word werkwoorde metodes. Publiek, privaat en beskermd is die tipiese toegangswysigers wat vir klasse gebruik word.

Wat is Abstrakte Klas?

Abstrakte klasse word verklaar deur gebruik te maak van Abstrakte sleutelwoord (bv. in Java,). Tipies kan Abstrakte klasse, ook bekend as Abstrakte Basisklasse (ABC), nie geïnstansieer word nie ('n instansie van daardie klas kan nie geskep word nie). Dus, Abstrakte klasse is slegs betekenisvol om te hê as die programmeertaal oorerwing ondersteun (vermoë om subklasse te skep deur 'n klas uit te brei). Abstrakte klasse verteenwoordig gewoonlik 'n abstrakte konsep of entiteit met gedeeltelike of geen implementering. Daarom tree abstrakte klasse op as ouerklasse waaruit kinderklasse afgelei word sodat die kinderklas die onvolledige kenmerke van die ouerklas sal deel en funksionaliteit bygevoeg kan word om dit te voltooi.

Abstrakte klasse kan abstrakte metodes bevat. Subklasse wat 'n abstrakte klas uitbrei, kan hierdie (oorgeërfde) abstrakte metodes implementeer. As die kinderklas al sulke Abstrakte metodes implementeer, word dit 'n konkrete klas. Maar as dit nie die geval is nie, word die kinderklas ook 'n Abstrakte klas. Wat dit alles beteken, is dat wanneer die programmeerder 'n klas as 'n opsomming nomineer, sy sê dat die klas onvolledig sal wees en dat dit elemente sal hê wat deur die oorerflike subklasse voltooi moet word. Dit is 'n goeie manier om 'n kontrak tussen twee programmeerders te skep, wat take in sagteware-ontwikkeling vergemaklik. Die programmeerder, wat kode skryf om te erf, moet die metodedefinisies presies volg (maar kan natuurlik haar eie implementering hê).

Wat is die verskil tussen Abstrakte Klas en Betonklas?

Abstrakte klasse het gewoonlik gedeeltelike of geen implementering. Aan die ander kant, konkrete klasse het altyd volle implementering van sy gedrag. Anders as konkrete klasse, kan abstrakte klasse nie geïnstansieer word nie. Daarom moet abstrakte klasse uitgebrei word om dit bruikbaar te maak. Abstrakte klasse kan abstrakte metodes bevat, maar konkrete klasse kan nie. Wanneer 'n abstrakte klas uitgebrei word, word alle metodes (beide abstrak en konkreet) geërf. Die geërfde klas kan enige of al die metodes implementeer. As al die abstrakte metodes nie geïmplementeer word nie, word daardie klas ook 'n abstrakte klas.

Aanbeveel: