Verschil tussen abstracte klasse en betonklasse

Abstracte klasse versus betonklasse

De meeste van de populaire moderne objectgeoriënteerde programmeertalen zoals Java en C # zijn gebaseerd op de klas. Ze bereiken de objectgeoriënteerde concepten zoals inkapseling, overerving en polymorfisme door middel van klassen. Klassen zijn een abstracte weergave van objecten uit de echte wereld. Klassen kunnen concreet of abstract zijn, afhankelijk van het implementatieniveau van hun methode-functionaliteiten. Een concrete klasse implementeert volledig alle methoden. Een abstracte klasse kan worden beschouwd als een beperkte versie van een reguliere (concrete) klasse, waar deze gedeeltelijk geïmplementeerde methoden kan bevatten. Typisch worden concrete klassen aangeduid als (alleen) klassen.

Wat is Concrete Class?

De standaardklasse is een betonklasse. Het klasse sleutelwoord wordt gebruikt om klassen te definiëren (bijvoorbeeld in Java). En meestal worden ze gewoon klassen genoemd (zonder het bijvoeglijk naamwoord beton). Concrete klassen geven de conceptuele representatie weer van objecten uit de echte wereld. Klassen hebben eigenschappen die attributen worden genoemd. Attributen worden geïmplementeerd als globale en instantievariabelen. Methoden in de klassen vertegenwoordigen of definiëren het gedrag van deze klassen. Methoden en kenmerken van klassen worden de leden van de klas genoemd. Doorgaans wordt encapsulatie bereikt door de attributen privé te maken, terwijl openbare methoden worden gecreëerd die kunnen worden gebruikt voor toegang tot die attributen. Een object is het exemplaar van een klasse. Met overerving kan de gebruiker klassen (subklassen genoemd) uitbreiden met andere klassen (superklassen genoemd). Polymorfisme stelt de programmeur in staat om een ​​object van een klasse te vervangen in plaats van een object uit zijn superklasse. Doorgaans worden de zelfstandige naamwoorden die in de probleemdefinitie worden gevonden, direct klassen in het programma. En op dezelfde manier worden werkwoorden methoden. Publiek, privé en beschermd zijn de typische toegangsmodifiers die voor klassen worden gebruikt.

Wat is Abstracte Klasse?

Abstracte klassen worden aangegeven met Abstract trefwoord (bijvoorbeeld in Java,). Doorgaans kunnen abstracte klassen, ook bekend als abstracte basisklassen (ABC), niet worden geïnstantieerd (een exemplaar van die klasse kan niet worden gemaakt). Dus, abstracte klassen zijn alleen zinvol als de programmeertaal overerving ondersteunt (mogelijkheid om subklassen te maken door een klasse uit te breiden). Abstracte klassen vertegenwoordigen meestal een abstract concept of entiteit met gedeeltelijke of geen implementatie. Daarom werken abstracte klassen als bovenliggende klassen waaruit onderliggende klassen zijn afgeleid, zodat de onderliggende klasse de onvolledige kenmerken van de bovenliggende klasse deelt en functionaliteit kan worden toegevoegd om deze te voltooien.

Abstracte klassen kunnen abstracte methoden bevatten. Subklassen die een abstracte klasse uitbreiden, kunnen deze (overgenomen) abstracte methoden implementeren. Als de onderliggende klasse al dergelijke abstracte methoden implementeert, wordt het een concrete klasse. Maar als dat niet het geval is, wordt de kinderklasse ook een abstracte klasse. Wat dit alles betekent is dat, wanneer de programmeur een klasse nomineert als een Abstract, ze zegt dat de klas onvolledig zal zijn en elementen bevat die moeten worden aangevuld door de overervende subklassen. Dit is een leuke manier om een ​​contract tussen twee programmeurs te maken, wat taken in softwareontwikkeling vereenvoudigt. De programmeur, die de code schrijft om te erven, moet de methodedefinities precies volgen (maar kan natuurlijk een eigen implementatie hebben).

Wat is het verschil tussen abstracte klasse en concrete klasse?

Abstracte klassen hebben meestal een gedeeltelijke of geen implementatie. Aan de andere kant hebben concrete klassen altijd volledige uitvoering van het gedrag. In tegenstelling tot concrete klassen, kunnen abstracte klassen niet worden geïnstantieerd. Daarom moeten abstracte klassen worden uitgebreid om ze bruikbaar te maken. Abstracte klassen bevatten mogelijk abstracte methoden, maar concrete klassen niet. Wanneer een abstracte klasse wordt uitgebreid, worden alle methoden (zowel abstract als concreet) overgenomen. De overgeërfde klasse kan een of alle methoden implementeren. Als alle abstracte methoden niet zijn geïmplementeerd, wordt die klasse ook een abstracte klasse.