Szintaxis:
absztrakt osztály classNameváltozó_nevek;
absztrakt módszer1 ();
nyilvános módszer2 ()
nyilatkozatok 1… N
Az absztrakt osztály tartalmazhat attribútumot vagy változót, absztrakt módszert és normál metódust, vagy bárkit. De az absztrakt osztály alosztálya csak az absztrakt osztály absztrakt módszerét tudja megvalósítani.
1. példa: Absztrakt osztály nyilvános módszerrel
A következő példa bemutatja, hogyan deklarálhat egy absztrakt osztályt nyilvános módszerrel, és az absztrakt osztály használatának módját egy alosztály létrehozásával. Itt az absztrakt osztály egy nyilvános módszert tartalmaz részletek() amely az absztrakt osztályon belül valósul meg. Az alosztály objektuma az absztrakt osztály nyilvános módszerének eléréséhez jön létre.
// Definiálja az absztrakt osztályt nyilvános módszerrelabsztrakt osztálykönyv
public void részletek ()
Rendszer.ki.println ("Könyv neve: Ismerje meg a PHP-t 15 perc alatt");
Rendszer.ki.println ("Szerző neve: Jake Wright");
Rendszer.ki.println ("Kedvezményes ár: 35 USD");
// Define subclass
osztály php kiterjeszti könyvet
// Főosztály
osztály absztrakt1
public static void main (String [] érvel)
php bk = új php ();
bk.részletek();
Kimenet:
A következő kimenet jelenik meg a kód futtatása után. Itt a részletek() az absztrakt osztály metódusát hívják meg, és a szöveget a módszerből nyomtatják ki.
2. példa: Absztrakt osztály absztrakt módszerrel és nyilvános módszerrel
A következő példa bemutatja, hogyan lehet egy absztrakt osztályt deklarálni változókkal, absztrakt módszerrel és nyilvános módszerrel. A nyilvános módszer állításait az absztrakt osztályon belül definiálják, de az absztrakt módszer törzse üres, amelyet az absztrakt osztály alosztályán belül hajtanak végre. Itt két alosztályt deklarálunk az absztrakt osztály kiterjesztésével. A megnevezett alosztály négyzet kiszámítja és kinyomtatja egy négyzet területét a. értéke alapján n változó. A megnevezett alosztály téglalap kiszámítja és kinyomtatja a téglalap területét a h és w változók. A nyilvános módszer, readData () nevű paraméterrel hívjuk meg típus annak meghatározása, hogy az absztrakt osztály mely változói kerülnek inicializálásra. A. Értéke típus változó 1 lesz az érték inicializálásához n és 2 a. értékének inicializálásához h és w.
// Adjon meg egy elvont osztályt egy elvont módszerrel és egy nyilvános módszerrelabsztrakt osztályterület
nyilvános int n, h, w;
absztrakt érvénytelen eredmény ();
public void readData (int típus)
if (type == 1)
n = 10;
más
h = 20;
w = 30;
// Definiálja a négyzet alakú alosztályt
osztály tér területe kiterjed
public void eredmény ()
// Számítsa ki a négyzet területét
int területVal = n * n;
Rendszer.ki.println ("A négyzet területe" + areaVal);
// Define téglalap alosztály
osztály téglalap kiterjeszti a területet
public void eredmény ()
// Számítsa ki a téglalap területét
int területVal = h * w;
Rendszer.ki.println ("A téglalap területe" + areaVal);
// Főosztály
osztály absztrakt2
public static void main (String [] érvel)
// A négyzet osztály objektumának létrehozása
négyzet sq = új négyzet ();
négyzetméter.readData (1);
négyzetméter.eredmény();
// A téglalap osztály objektumának létrehozása
téglalap rq = új téglalap ();
rq.readData (2);
rq.eredmény();
Kimenet:
A következő kimenet jelenik meg a kód futtatása után. A kimenet egy négyzet területét mutatja, ahol a értéke n van 10 és egy téglalap területe, ahol a h van 20, és az értéke w van 30.
3. példa: Absztrakt osztály a konstruktorral
A következő példa bemutatja, hogyan lehet a konstruktort deklarálni és használni egy absztrakt osztályon belül. Az absztrakt osztály konstruktora inicializálja a a és b. Az elvont módszer, maxval () nevű alosztályban valósul meg findMax. szuper() metódust használnak az alosztály konstruktorában egy absztrakt osztály konstruktorának hívására. Az elvont módszer maxval () megtudja, mekkora maximális értéket kap az objektum létrehozásakor az alosztály konstruktorának paramétereihez tartozó két szám.
// Definiáljon egy absztrakt osztályt egy konstruktorralabsztrakt osztályok száma
// változók deklarálása
védett végső int a, b;
// absztrakt osztály konstruktor
nyilvános számok (int x, int y)
ez.a = x;
ez.b = y;
// Nyilvános módszer
public abstract void maxval ();
// Define subclass
class findMax kiterjeszti a számokat
// Alosztály konstruktor
nyilvános findMax (int x, int y)
// Absztrakt osztály konstruktor hívása
szuper (x, y);
// Absztrakt módszer megvalósítása
public void maxval ()
ha (a> b)
Rendszer.ki.println (a + "nagyobb, mint" + b);
más
Rendszer.ki.println (b + "nagyobb, mint" + a);
// Főosztály
osztály absztrakt3
public static void main (String [] érvel)
// Az alosztály objektumának létrehozása
findMax fmax = új findMax (34,89);
// Keresse meg a maximumot
fmax.maxval ();
Kimenet:
A következő kimenet jelenik meg a szkript futtatása után. Itt, 34 és 89 a konstruktor paraméterértékeként vannak megadva. Ezeket az értékeket összehasonlítjuk az abosztályban megvalósított absztrakt módszerrel, és kinyomtatjuk a következő üzenetet.
Következtetés:
Absztrakt osztályt használunk a program szervezettebbé és érthetőbbé tételéhez. Több kapcsolódó osztály csoportosítható absztrakt osztályok használatával. Az absztrakt osztály koncepcióját és megvalósítását a különböző részekkel ebben az oktatóanyagban egyszerű példák segítségével magyarázzuk meg. Remélem, hogy az olvasók meg tudják érteni az absztrakt osztály használatát és megfelelően alkalmazzák a kódjukban, miután elolvasták ezt az oktatóanyagot.