Java

Java abstracte klasse

Java abstracte klasse
Het concept van de abstractie is om de taak van het object te benadrukken in plaats van te benadrukken, "hoe het object de taak uitvoert". Dit type concept kan op twee manieren in Java worden geïmplementeerd. Dit zijn de abstracte klasse en interface. Abstracte klasse bevat het trefwoord abstract. Deze klasse kan niet worden geïnitieerd zoals andere normale klassen, maar een subklasse kan worden afgeleid door de abstracte klasse te erven. De functies van de abstracte klasse zijn toegankelijk door het object van de subklasse te maken. Een abstracte klasse kan ook de constructor bevatten die toegankelijk is door het object van de subklasseklasse te maken. Hoe u een abstracte klasse in Java kunt gebruiken, wordt in deze zelfstudie getoond.

Syntaxis:

abstracte klasse className
variabele_namen;
abstracte methode1();
openbare methode2()
uitspraken 1… Nee

Een abstracte klasse kan attribuut of variabelen, abstracte methode en normale methode of een van hen bevatten. Maar de subklasse van de abstracte klasse kan alleen de abstracte methode van de abstracte klasse implementeren.

Voorbeeld-1: Abstracte klasse met een openbare methode

Het volgende voorbeeld laat zien hoe u een abstracte klasse kunt declareren met een openbare methode en hoe u een abstracte klasse kunt gebruiken door een subklasse te maken. Hier bevat de abstracte klasse een openbare methode met de naam details() dat is geïmplementeerd in de abstracte klasse. Het object van de subklasse is gemaakt om toegang te krijgen tot de openbare methode van de abstracte klasse.

// Definieer abstracte klasse met openbare methode
abstract klasboek
openbare ongeldige details()
Systeem.uit.println("Boeknaam: leer PHP in 15 minuten");
Systeem.uit.println("Naam auteur: Jake Wright");
Systeem.uit.println("Kortingsprijs: $35");


//Definieer subklasse
klasse php breidt boek uit

//Hoofdklasse
klasse abstract1
public static void main(String[] args)
php bk = nieuwe php();
bk.details();

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de code:. Hier de details() methode van abstracte klasse wordt aangeroepen en de tekst wordt afgedrukt vanuit de methode.

Voorbeeld-2: Abstracte klasse met de abstracte methode en de openbare methode

Het volgende voorbeeld laat zien hoe een abstracte klasse kan worden gedeclareerd met variabelen, een abstracte methode en een openbare methode. De instructies van de openbare methode zijn gedefinieerd in de abstracte klasse, maar de hoofdtekst van de abstracte methode is leeg die is geïmplementeerd in de subklasse van de abstracte klasse. Hier worden twee subklassen gedeclareerd door de abstracte klasse uit te breiden. De subklasse met de naam plein berekent en drukt de oppervlakte van een vierkant af op basis van de waarde van nee variabele. De subklasse met de naam rechthoek zal het gebied van de rechthoek berekenen en afdrukken op basis van de waarde van value h en met wie variabelen. De openbare methode, leesData() wordt aangeroepen door een parameter met de naam type om te identificeren welke variabele(n) van de abstracte klasse zullen worden geïnitialiseerd. De waarde van de type variabele zal 1 zijn voor het initialiseren van de waarde van nee en 2 voor het initialiseren van de waarde van h en met wie.

//Definieer een abstracte klasse met een abstracte methode en een openbare methode
abstract klasgebied
openbaar int n, h, w;
abstract ongeldig resultaat();
public void readData(int type)
als (type == 1)
n = 10;

anders
h = 20;
w = 30;



//Definieer vierkante subklasse
klasse vierkant vergroot gebied
openbaar ongeldig resultaat()
// Bereken de oppervlakte van het vierkant
int gebiedVal = n*n;
Systeem.uit.println("De oppervlakte van het vierkant is " + areaVal);


//Definieer rechthoek subklasse
klasse rechthoek vergroot gebied
openbaar ongeldig resultaat()
// Bereken de oppervlakte van de rechthoek
int gebiedVal = h*w;
Systeem.uit.println("De oppervlakte van de rechthoek is " + areaVal);


//Hoofdklasse
klasse abstract2
public static void main(String[] args)
//Maak object van de vierkante klasse
vierkant vierkant = nieuw vierkant();
vierkante.leesData(1);
vierkante.resultaat();
//Maak object van de rechthoekklasse
rechthoek rq = nieuwe rechthoek();
rq.leesData(2);
rq.resultaat();

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de code:. De uitvoer toont het gebied van een vierkant waar de waarde van nee is 10 en het gebied van een rechthoek waar de waarde van h is 20, en de waarde van met wie is 30.

Voorbeeld-3: Abstracte klasse met de constructor

Het volgende voorbeeld laat zien hoe de constructor kan worden gedeclareerd en gebruikt binnen een abstracte klasse. De constructor van de abstracte klasse initialiseert de waarden van een en b. De abstracte methode, maximale waarde() is geïmplementeerd in de subklasse met de naam vindMax. super() methode wordt gebruikt in de constructor van de subklasse om de constructor van een abstracte klasse aan te roepen. De abstracte methode maximale waarde() vindt de maximale waarde van twee getallen die worden gegeven aan de parameters van de constructor van de subklasse op het moment dat het object wordt gemaakt.

//Definieer een abstracte klasse met een constructor
abstracte klassennummers
//variabelen declareren
beschermd definitief int a, b;
//abstracte klassenconstructor
openbare nummers(int x,int y)
dit.een = x;
dit.b = y;

//Openbare methode
openbare abstracte ongeldig maxval();

//Definieer subklasse
klasse findMax breidt getallen uit
// Subklasse-constructor
public findMax(int ​​x,int y)
//Bel de constructor van abstracte klassen aan
super(x,y);

// Implementeer abstracte methode
openbare ongeldig maxval()
als (a > b)
Systeem.uit.println(a + " is groter dan " + b);

anders
Systeem.uit.println(b + " is groter dan " + a);



//Hoofdklasse
klasse abstract3
public static void main(String[] args)
//Maak object van de subklasse
findMax fmax = nieuw findMax(34,89);
// Vind het maximum
fmax.maximale waarde();

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:. Hier, 34 en 89 worden gegeven als parameterwaarden van de constructor. Deze waarden worden vergeleken in de abstracte methode die in de subklasse is geïmplementeerd en het volgende bericht afgedrukt:.

Conclusie:

Er wordt een abstracte klasse gebruikt om het programma overzichtelijker en begrijpelijker te maken. Verschillende gerelateerde klassen kunnen worden gegroepeerd door abstracte klassen te gebruiken. Het concept en de implementatie van de abstracte klasse met verschillende onderdelen worden in deze tutorial uitgelegd aan de hand van eenvoudige voorbeelden. Ik hoop dat de lezers het gebruik van abstracte klasse kunnen begrijpen en het correct in hun code kunnen toepassen na het lezen van deze tutorial.

Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...