Java

Java abstrakt klass

Java abstrakt klass
Konceptet för abstraktionen är att markera objektets uppgift istället för att markera, "hur objektet gör uppgiften". Denna typ av koncept kan implementeras på två sätt i Java. Dessa är den abstrakta klassen och gränssnittet. Abstrakt klass innehåller nyckelordet abstrakt. Denna klass kan inte initieras som andra normala klasser, men en underklass kan härledas genom att ärva den abstrakta klassen. Funktionerna i den abstrakta klassen kan nås genom att skapa objektet för underklassen. En abstrakt klass kan också innehålla konstruktören som kan nås genom att skapa objektet för underklassklassen. Hur du kan använda en abstrakt klass i Java visas i denna handledning.

Syntax:

abstrakt klass className
variabla_namn;
abstrakt metod1 ();
offentlig metod2 ()
uttalanden 1 ... N

En abstrakt klass kan innehålla attribut eller variabler, abstrakt metod och normal metod eller någon av dem. Men underklassen till den abstrakta klassen kan bara implementera den abstrakta klassens abstrakta metod.

Exempel 1: Abstrakt klass med en offentlig metod

Följande exempel visar hur du kan förklara en abstrakt klass med en offentlig metod och hur du använder en abstrakt klass genom att skapa en underklass. Här innehåller abstraktklassen en offentlig metod som heter detaljer () som implementeras i den abstrakta klassen. Syftet med underklassen skapas för att få tillgång till den abstrakta klassens offentliga metod.

// Definiera abstrakt klass med offentlig metod
abstrakt klassbok
offentliga ogiltiga uppgifter ()
Systemet.ut.println ("Boknamn: Lär dig PHP på 15 minuter");
Systemet.ut.println ("Författarens namn: Jake Wright");
Systemet.ut.println ("Rabatterat pris: $ 35");


// Definiera underklass
klass php förlänger bok

// Huvudklass
klassabstrakt1
public static void main (String [] args)
php bk = ny php ();
bk.detaljer ();

Produktion:

Följande utdata visas efter att koden har körts. Här, den detaljer () metod för abstrakt klass kallas, och texten skrivs ut från metoden.

Exempel 2: Abstrakt klass med abstrakt metod och offentlig metod

Följande exempel visar hur en abstrakt klass kan deklareras med variabler, en abstrakt metod och en offentlig metod. Uttalandena för den offentliga metoden definieras inom den abstrakta klassen, men kroppen för den abstrakta metoden är tom som implementeras i underklassen av abstraktklassen. Här deklareras två underklasser genom att utvidga den abstrakta klassen. Den underklass som heter fyrkant kommer att beräkna och skriva ut arean av en kvadrat baserat på värdet av n variabel. Den underklass som heter rektangel kommer att beräkna och skriva ut arean av rektangeln baserat på värdet av h och w variabler. Den offentliga metoden, readData () kallas av en parameter som heter typ för att identifiera vilka variabler i abstraktklassen som ska initieras. Värdet av typ variabeln är 1 för att initialisera värdet på n och 2 för att initialisera värdet av h och w.

// Definiera en abstrakt klass med en abstrakt metod och en offentlig metod
abstrakt klassområde
offentlig int n, h, w;
abstrakt ogiltigt resultat ();
public void readData (int-typ)
om (typ == 1)
n = 10;

annat
h = 20;
w = 30;



// Definiera fyrkantig underklass
klassstorget utvidgar området
offentligt ogiltigt resultat ()
// Beräkna kvadratytan
int areaVal = n * n;
Systemet.ut.println ("Torget är" + areaVal);


// Definiera rektangelunderklass
klassrektangel utökar område
offentligt ogiltigt resultat ()
// Beräkna rektangelns yta
int areaVal = h * w;
Systemet.ut.println ("Rektangelns område är" + areaVal);


// Huvudklass
klassabstrakt2
public static void main (String [] args)
// Skapa objekt av kvadratklassen
kvadrat kvadrat = ny kvadrat ()
kvm.readData (1);
kvm.resultat();
// Skapa objekt av rektangelklassen
rektangel rq = ny rektangel ();
rq.readData (2);
rq.resultat();

Produktion:

Följande utdata visas efter att koden har körts. Utgången visar arean på en kvadrat där värdet av n är 10 och området för en rektangel där värdet av h är 20, och värdet av w är 30.

Exempel 3: Abstrakt klass med konstruktören

Följande exempel visar hur konstruktören kan deklareras och användas inom en abstrakt klass. Konstruktören för den abstrakta klassen initialiserar värdena för a och b. Den abstrakta metoden, maxval () implementeras i den underklass som heter findMax. super() metoden används i underklassens konstruktör för att kalla konstruktören för en abstrakt klass. Den abstrakta metoden maxval () kommer att ta reda på det maximala värdet på två siffror som kommer att ges till parametrarna för konstruktören för underklassen vid tidpunkten för skapandet av objekt.

// Definiera en abstrakt klass med en konstruktör
abstrakta klassnummer
// deklarera variabler
skyddad slutlig int a, b;
// abstrakt klasskonstruktör
offentliga nummer (int x, int y)
detta.a = x;
detta.b = y;

// Offentlig metod
offentligt abstrakt ogiltigt maxval ();

// Definiera underklass
class findMax utökar siffror
// Underklasskonstruktör
public findMax (int x, int y)
// Ring abstrakt klasskonstruktör
super (x, y);

// Implementera abstrakt metod
offentligt ogiltigt maxval ()
om (a> b)
Systemet.ut.println (a + "är större än" + b);

annat
Systemet.ut.println (b + "är större än" + a);



// Huvudklass
klassabstrakt3
public static void main (String [] args)
// Skapa objekt av underklassen
findMax fmax = ny findMax (34,89);
// Hitta det högsta
fmax.maxval ();

Produktion:

Följande utdata visas efter körning av skriptet. Här, 34 och 89 ges som parametervärden för konstruktorn. Dessa värden jämförs i den abstrakta metoden som implementeras i underklassen och skrivs ut följande meddelande.

Slutsats:

En abstrakt klass används för att göra programmet mer organiserat och förståeligt. Flera relaterade klasser kan grupperas med hjälp av abstrakta klasser. Konceptet och implementeringen av den abstrakta klassen med olika delar förklaras i denna handledning med hjälp av enkla exempel. Jag hoppas att läsarna kommer att kunna förstå användningen av abstrakt klass och tillämpa den i sin kod ordentligt efter att ha läst denna handledning.

Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...
0 A.D. Handledning
Av de många strategispelen där ute, 0 A.D. lyckas framstå som en omfattande titel och ett mycket djupt, taktiskt spel trots att det är öppen källkod. ...
Unity3D självstudie
Introduktion till Unity 3D Unity 3D är en kraftfull spelutvecklingsmotor. Det är tvärplattform som gör att du kan skapa spel för mobil, webb, skrivbor...