Video: DAT100 video 8: Abstrakte klasser 2025
En abstrakt klasse i Java er en klasse som inneholder en eller flere abstrakte metoder , som bare er metodedeklarasjoner uten kropp - det vil si uten kjørbar kode som implementerer klassen eller metoden. En abstrakt metode er som en prototype for en metode, som erklærer metodens returtype og parameterliste, men ikke gir en faktisk implementering av metoden.
Du kan ikke ordne en abstrakt klasse. Du kan imidlertid opprette en underklasse som utvider en abstrakt klasse og gir en implementering av abstrakte metoder definert av abstrakt klassen. Du kan instantiere underklassen.
For å opprette en abstrakt metode, spesifiserer du modifikatoren abstrakt og erstatter metalkroppen med et semikolon:
Metoden for offentlig abstrakt returtype-metode (parameterliste);
Her er et eksempel:
offentlig abstrakt int hit (int batSpeed);
For å lage en abstrakt klasse bruker du abstraktet på klassedeklarasjonen og inkluderer minst en abstrakt metode. For eksempel:
offentlig abstrakt klasse Ball {offentlig abstrakt int hit (int batSpeed);}
Du kan lage en underklasse fra en abstrakt klasse som denne:
offentlig klasse BaseBall utvider Ball {public int hit (int batSpeed) {// kode som implementerer hitmetoden går her}}
Når du underklasse en abstrakt klasse, må underklassen gi en implementering for hver abstrakt metode i abstrakt klasse. Med andre ord må den overstyre hver abstrakt metode.
Abstrakte klasser er nyttige når du vil opprette en generisk type som brukes som superklasse for to eller flere underklasser, men selve superklassen representerer ikke et faktisk objekt. Hvis alle ansatte enten er lønnsmessige eller timebaserte, for eksempel, er det fornuftig å lage en abstrakt ansattsklasse, og deretter bruke den som grunnklassen for underklassene SalariedEmployee og HourlyEmployee.
Her er noen detaljer om abstrakte klasser:
-
Ikke alle metodene i en abstrakt klasse må være abstrakte. En klasse kan gi en implementering for noen av sine metoder, men ikke andre. Faktisk, selv om en klasse ikke har noen abstrakte metoder, kan du fortsatt erklære det som abstrakt. (I så fall kan klassen ikke bli instantiated.)
-
En privat metode kan ikke være abstrakt. Alle abstrakte metoder må være offentlige.
-
En klasse kan ikke være både abstrakt og endelig.
