Video: Java 2. Arv 1: Lav en klasse der arver fra en anden 2025
En abstrakt klasse i Java er en klasse, der indeholder en eller flere abstrakte metoder , der blot er metodedeklarationer uden et legeme - det vil sige uden eksekverbar kode, der gennemfører klassen eller metoden. En abstrakt metode er som en prototype for en metode, der erklærer metodeens returtype og parameterliste, men giver ikke en faktisk implementering af metoden.
Du kan ikke instantiere en abstrakt klasse. Du kan dog oprette en underklasse, der udvider en abstrakt klasse og giver en implementering af abstrakte metoder defineret af den abstrakte klasse. Du kan instantiere underklassen.
For at oprette en abstrakt metode angiver du modifikatoren abstrakt og erstatter metalkroppen med et semikolon:
metode til offentlig abstrakt returtype (parameterliste);
Her er et eksempel:
offentlig abstrakt int hit (int batSpeed);
For at oprette en abstrakt klasse bruger du abstraktet på klassedeklarationen og indeholder mindst en abstrakt metode. For eksempel:
offentlig abstrakt klasse bold {public abstract int hit (int batSpeed);}
Du kan oprette en underklasse fra en abstrakt klasse som denne:
offentlig klasse BaseBall udvider Ball {public int hit (int batSpeed) {// kode, der implementerer hitmetoden går her}}
Når du underklasse en abstrakt klasse, skal underklassen give en implementering for hver abstrakt metode i abstrakt klasse. Det må med andre ord tilsidesætte hver abstrakt metode.
Abstrakte klasser er nyttige, når du vil oprette en generisk type, der bruges som superklasse til to eller flere underklasser, men selve superklassen repræsenterer ikke et egentligt objekt. Hvis alle medarbejdere enten er lønnede eller timebaserede, er det fornuftigt at oprette en abstrakt medarbejderklasse og derefter bruge den som undervisningsklasse for underklasserne SalariedEmployee og HourlyEmployee.
Her er et par yderligere detaljer vedrørende abstrakte klasser:
-
Ikke alle metoderne i en abstrakt klasse skal være abstrakte. En klasse kan give en implementering for nogle af dens metoder, men ikke andre. Faktisk, selvom en klasse ikke har nogen abstrakte metoder, kan du stadig erklære det som abstrakt. (I så fald kan klassen ikke blive instantiated.)
-
En privat metode kan ikke være abstrakt. Alle abstrakte metoder skal være offentlige.
-
En klasse kan ikke være både abstrakt og endelig.