Syntaks:
abstrakt klasse klasse Navnvariable_navne;
abstrakt metode1 ();
offentlig metode2 ()
udsagn 1… N
En abstrakt klasse kan indeholde attribut eller variabler, abstrakt metode og normal metode eller nogen af dem. Men underklassen til den abstrakte klasse kan kun implementere den abstrakte klasses abstrakte metode.
Eksempel 1: Abstrakt klasse med en offentlig metode
Følgende eksempel viser, hvordan du kan erklære en abstrakt klasse med en offentlig metode, og hvordan du bruger en abstrakt klasse ved at oprette en underklasse. Her indeholder den abstrakte klasse en offentlig metode, der hedder detaljer() der er implementeret i den abstrakte klasse. Formålet med underklassen er skabt for at få adgang til den offentlige metode i den abstrakte klasse.
// Definer abstrakt klasse med offentlig metodeabstrakt klassebog
offentlige ugyldighedsoplysninger ()
System.ud.println ("Bognavn: Lær PHP på 15 minutter");
System.ud.println ("Forfatternavn: Jake Wright");
System.ud.println ("Rabatpris: $ 35");
// Definer underklasse
klasse php udvider bog
// Hovedklasse
klasse abstrakt1
offentlig statisk ugyldig hoved (String [] args)
php bk = ny php ();
bk.detaljer();
Produktion:
Følgende output vises efter kørsel af koden. Her, den detaljer() metode til abstrakt klasse kaldes, og teksten udskrives fra metoden.
Eksempel 2: Abstrakt klasse med abstrakt metode og offentlig metode
Følgende eksempel viser, hvordan en abstrakt klasse kan erklæres med variabler, en abstrakt metode og en offentlig metode. Erklæringerne fra den offentlige metode er defineret inden i den abstrakte klasse, men kroppen af den abstrakte metode er tom, der er implementeret inde i underklassen til den abstrakte klasse. Her erklæres to underklasser ved at udvide den abstrakte klasse. Underklassen navngivet firkant beregner og udskriver arealet af en firkant baseret på værdien af n variabel. Underklassen navngivet rektangel beregner og udskriver arealet af rektanglet baseret på værdien af h og w variabler. Den offentlige metode, readData () kaldes af en parameter, der hedder type for at identificere, hvilke variabler i abstraktklassen der initialiseres. Værdien af type variabel er 1 til initialisering af værdien af n og 2 til initialisering af værdien af h og w.
// Definer en abstrakt klasse med en abstrakt metode og en offentlig metodeabstrakt klasseområde
offentlig int n, h, w;
abstrakt ugyldigt resultat ();
public void readData (int type)
hvis (type == 1)
n = 10;
andet
h = 20;
w = 30;
// Definer kvadratisk underklasse
klasse firkant udvider område
offentligt ugyldigt resultat ()
// Beregn kvadratets areal
int areaVal = n * n;
System.ud.println ("Arealet af firkanten er" + areaVal);
// Definer rektangelunderklasse
klasse rektangel udvider område
offentligt ugyldigt resultat ()
// Beregn arealet af rektanglet
int areaVal = h * w;
System.ud.println ("Arealet af rektanglet er" + areaVal);
// Hovedklasse
klasse abstrakt2
offentlig statisk ugyldig hoved (String [] args)
// Opret objekt af firkantklassen
kvadrat kvadrat = ny kvadrat ()
kvm.readData (1);
kvm.resultat();
// Opret objekt fra rektangelklassen
rektangel rq = nyt rektangel ();
rq.readData (2);
rq.resultat();
Produktion:
Følgende output vises efter kørsel af koden. Outputtet viser arealet af en firkant, hvor værdien af n er 10 og arealet af et rektangel, hvor værdien af h er 20, og værdien af w er 30.
Eksempel 3: Abstrakt klasse med konstruktøren
Følgende eksempel viser, hvordan konstruktør kan erklæres og bruges i en abstrakt klasse. Konstruktøren af den abstrakte klasse initialiserer værdierne for -en og b. Den abstrakte metode, maxval () er implementeret i den navngivne underklasse findMax. super() Metoden bruges i konstruktøren af underklassen til at kalde konstruktøren for en abstrakt klasse. Den abstrakte metode maxval () vil finde ud af den maksimale værdi af to tal, der vil blive givet til parametrene for konstruktøren af underklassen på tidspunktet for oprettelse af objekt.
// Definer en abstrakt klasse med en konstruktørabstrakte klassetal
// erklære variabler
beskyttet endelig int a, b;
// abstrakt klassekonstruktør
offentlige numre (int x, int y)
det her.a = x;
det her.b = y;
// Offentlig metode
offentlig abstrakt ugyldigt maxval ();
// Definer underklasse
klasse findMax udvider tal
// Underklassekonstruktør
public findMax (int x, int y)
// Ring til abstrakt klassekonstruktør
super (x, y);
// Implementere abstrakt metode
offentlig tomrum maxval ()
hvis (a> b)
System.ud.println (a + "er større end" + b);
andet
System.ud.println (b + "er større end" + a);
// Hovedklasse
klasse abstrakt3
offentlig statisk ugyldig hoved (String [] args)
// Opret objekt af underklassen
findMax fmax = ny findMax (34,89);
// Find det maksimale
fmax.maxval ();
Produktion:
Følgende output vises efter kørsel af scriptet. Her, 34 og 89 er angivet som parameterværdier for konstruktøren. Disse værdier sammenlignes i den abstrakte metode, der er implementeret i underklassen og udskrevet følgende meddelelse.
Konklusion:
En abstrakt klasse bruges til at gøre programmet mere organiseret og forståeligt. Flere relaterede klasser kan grupperes ved hjælp af abstrakte klasser. Konceptet og implementeringen af den abstrakte klasse med forskellige dele forklares i denne vejledning ved hjælp af enkle eksempler. Jeg håber, at læserne vil være i stand til at forstå brugen af abstrakt klasse og anvende den korrekt i deres kode efter at have læst denne vejledning.