Video: UML Class Diagram Tutorial 2024
Een abstracte klasse in Java is een klasse die een of meer klassen bevat abstracte methoden , die eenvoudigweg methodeaanwijzingen zijn zonder een body - dat wil zeggen zonder uitvoerbare code die de klasse of methode implementeert. Een abstracte methode is als een prototype voor een methode, waarbij het retourtype en de parameterlijst van de methode worden verklaard, maar er wordt geen daadwerkelijke implementatie van de methode geboden.
U kunt geen abstracte klasse instantiëren. U kunt echter een subklasse maken die een abstracte klasse uitbreidt en een implementatie biedt van de abstracte methoden die zijn gedefinieerd door de abstracte klasse. U kunt de subklasse instantiëren.
Om een abstracte methode te maken, specificeer je de modifier abstract en vervang je de body door een puntkomma:
public abstract return-type method-name (parameter-list);
Hier is een voorbeeld:
openbare abstracte int-hit (int batSpeed);
Als u een abstracte klasse wilt maken, gebruikt u de samenvatting van de klasseverklaring en neemt u ten minste één abstracte methode op. Bijvoorbeeld:
openbare abstracte klasse Ball {public abstract int hit (int batSpeed);}
U kunt een subklasse maken van een abstracte klasse als deze:
openbare klasse BaseBall breidt Ball uit {public int hit (int batSpeed) {// code die de hitmethode implementeert, gaat hier}}
Wanneer u een abstracte klasse subklasse, moet de subklasse een implementatie voor elke abstracte methode in de abstracte klasse. Met andere woorden, het moet elke abstracte methode overschrijven.
Abstracte klassen zijn handig wanneer u een generiek type wilt maken dat wordt gebruikt als de superklasse voor twee of meer subklassen, maar de superklasse zelf vertegenwoordigt geen werkelijk object. Als alle werknemers bijvoorbeeld in loondienst zijn of uurlijks, is het zinvol om een abstracte Employee-klasse te maken en deze vervolgens te gebruiken als de basisklasse voor de subklassen SalariedEmployee en HourlyEmployee.
Hier zijn een paar aanvullende details met betrekking tot abstracte klassen:
-
Niet alle methoden in een abstracte klasse moeten abstract zijn. Een klasse kan een implementatie bieden voor sommige van zijn methoden, maar niet voor andere. Zelfs als een klas geen abstracte methoden heeft, kun je het nog steeds als abstract verklaren. (In dat geval kan de klasse echter niet worden geïnstantieerd.)
-
Een privémethode kan niet abstract zijn. Alle abstracte methoden moeten openbaar zijn.
-
Een klasse kan niet zowel abstract als definitief zijn.