Verschil tussen abstracte klasse en interface

Anonim

Abstracte klasse vs Interface

Abstracte klasse en Interface zijn twee object georiënteerde constructen gevonden in veel object georiënteerde programmeer talen zoals Java. Abstracte klasse kan beschouwd worden als een abstracte versie van een gewone (concrete) klasse, terwijl een interface kan worden beschouwd als een middel om een ​​contract uit te voeren. Abstracte klas is een klasse die niet geïnitialiseerd kan worden maar kan uitgebreid worden. Interface is een type dat door andere lessen geïmplementeerd moet worden. In Java worden abstracte klassen verklaard met behulp van het abstracte zoekwoord, terwijl het interface-zoekwoord wordt gebruikt om een ​​interface te definiëren.

Wat is een abstracte klas?

Typisch kunnen abstracte klassen, ook bekend als abstracte basisklassen (ABC), niet georganiseerd worden (een voorbeeld van die klasse kan niet worden gecreëerd). Dus, abstracte lessen zijn alleen zinvol om te hebben als de programmeertaal armoede ondersteunt (mogelijkheid om subclasses te creëren om een ​​klas uit te breiden). Abstracte lessen vertegenwoordigen gewoonlijk een abstract concept of entiteit met gedeeltelijke of geen implementatie. Abstracte lessen fungeren daarom als ouderklassen waaruit de kinderlessen zijn afgeleid zodat de kindklasse de onvolledige kenmerken van de ouderklasse zal delen en de functionaliteit kan worden toegevoegd om ze te voltooien.

Abstracte lessen kunnen abstracte methoden bevatten. Subklassen die een abstracte klasse uitbreiden, kunnen deze (geërfde) abstracte methoden implementeren. Als de kindklasse alle dergelijke abstracte methoden implementeert, is het een concrete klas. Maar als dat niet het geval is, wordt de kinderklasse ook een abstracte klas. Wat dit allemaal betekent is dat wanneer de programmeur een klas als een abstract benoemt, zegt ze dat de les onvolledig zal zijn en het zal elementen bevatten die door de erfelijke subklasse moeten worden ingevuld. Dit is een leuke manier om een ​​contract te maken tussen twee programmeurs, die taken vereisen bij de ontwikkeling van software. De programmeur, die code schrijft om te erfenis, moet de methode-definities precies volgen (maar natuurlijk kan ze zelf implementeren).

Wat is een interface?

Een interface is een abstract type dat gebruikt wordt om een ​​contract te specificeren dat door klassen moet worden geïmplementeerd, die die interface implementeren. Het interface-zoekwoord wordt gebruikt om een ​​interface te definiëren en het zoekwoord van implementaties wordt gebruikt voor het implementeren van een interface door een klasse (in Java-programmeertaal). Meestal bevat een interface alleen methode handtekeningen en constante declaraties. Elke interface die een bepaalde interface implementeert, moet alle methoden die in de interface zijn gedefinieerd, implementeren of als een abstracte klasse worden aangemerkt. In Java kan het type objectreferentie worden gedefinieerd als een interface type. Maar dat object moet ofwel een object van een klasse zijn, die de betreffende interface implementeert.Met behulp van het implementatie-trefwoord in Java kunt u meerdere interfaces implementeren in één klasse.

Wat is het verschil tussen Abstract Class and Interface?

Abstracte klassen vertegenwoordigen gewoonlijk een abstract concept of een entiteit met gedeeltelijke of geen implementatie. Aan de andere kant is een interface een abstract type dat gebruikt wordt om een ​​contract te specificeren dat door klassen moet worden geïmplementeerd. Abstracte lessen moeten worden geërfd (of uitgebreid), terwijl interfaces geïmplementeerd moeten worden. Abstracte lessen kunnen abstracte methoden bevatten, terwijl een interface uitsluitend abstracte methoden moet bevatten. Abstracte klassen kunnen variabelen bevatten, maar Interfaces kunnen alleen constanten definiëren. Een klasse kan niet meer dan één abstracte klasse erf, maar kan meerdere interfaces implementeren. Een interface kan geen andere interface implementeren. Een interface kan echter een klasse verlengen.