Java

Java abstrakt klasse

Java abstrakt klasse
Begrebet abstraktion er at fremhæve objektets opgave i stedet for at fremhæve "hvordan objektet udfører opgaven". Denne type koncept kan implementeres ved hjælp af to måder i Java. Disse er den abstrakte klasse og grænseflade. Abstrakt klasse indeholder nøgleordet abstrakt. Denne klasse kan ikke initieres som andre normale klasser, men en underklasse kan udledes ved at arve den abstrakte klasse. Funktionerne i den abstrakte klasse kan tilgås ved at oprette objektet i underklassen. En abstrakt klasse kan også indeholde konstruktøren, der er tilgængelig ved at oprette objektet til underklasseklassen. Hvordan du kan bruge en abstrakt klasse i Java vises i denne vejledning.

Syntaks:

abstrakt klasse klasse Navn
variable_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 metode
abstrakt 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 metode
abstrakt 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ør
abstrakte 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.

Mus Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Xdotool er et gratis og open source kommandolinjeværktøj til simulering af museklik og tastetryk. Denne artikel dækker en kort vejledning om brug af x...
Mus Top 5 ergonomiske computermusprodukter til Linux
Top 5 ergonomiske computermusprodukter til Linux
Forårsager langvarig brug af computeren smerter i dit håndled eller fingre? Lider du af stive led og er konstant nødt til at ryste hænderne? Føler du ...
Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...