Java

Java abstraktne klass

Java abstraktne klass
Abstraktsiooni mõte on esile tõsta objekti ülesanne, selle asemel, et esile tõsta "kuidas objekt ülesannet teeb". Seda tüüpi kontseptsiooni saab rakendada Java-s kahel viisil. Need on abstraktne klass ja liides. Abstraktne klass sisaldab märksõna abstraktne. Seda klassi ei saa algatada nagu teisi tavaklasse, kuid alamklassi saab tuletada abstraktse klassi pärimise teel. Abstraktse klassi funktsioonidele pääseb juurde, luues alamklassi objekti. Abstraktne klass võib sisaldada ka konstruktorit, millele pääseb juurde, kui luuakse alaklassi objekti objekt. Selles juhendis on näidatud, kuidas Java-s abstraktset klassi kasutada.

Süntaks:

abstraktne klass className
muutuja_nimed;
abstraktne meetod1 ();
avalik meetod2 ()
avaldused 1… N

Abstraktne klass võib sisaldada atribuuti või muutujaid, abstraktset meetodit ja tavalist meetodit või kedagi neist. Kuid abstraktse klassi alamklass saab rakendada ainult abstraktse klassi abstraktset meetodit.

Näide 1: abstraktne klass avaliku meetodiga

Järgmine näide näitab, kuidas saate deklareerida abstraktse klassi avaliku meetodiga ja kuidas abstraktset klassi kasutada alaklassi loomisega. Siin sisaldab abstraktne klass avalikku meetodit nimega üksikasjad () mida rakendatakse abstraktse klassi sees. Alamklassi objekt luuakse ligipääsuks abstraktse klassi avalikule meetodile.

// Defineerige abstraktne klass avaliku meetodiga
abstraktne klassiraamat
avalikud tühised üksikasjad ()
Süsteem.välja.println ("Raamatu nimi: õppige PHP-d 15 minutiga");
Süsteem.välja.println ("Autori nimi: Jake Wright");
Süsteem.välja.println ("Soodushind: 35 dollarit");


// Määratlege alaklass
klassi php laiendab raamatut

// Põhiklass
klassi kokkuvõte1
public staatiline void main (String [] args)
php bk = uus php ();
bk.üksikasjad ();

Väljund:

Pärast koodi käivitamist ilmub järgmine väljund. Siin, üksikasjad () nimetatakse abstraktse klassi meetodit ja meetod trükitakse tekstist.

Näide 2: Abstraktne klass abstraktse meetodi ja avaliku meetodiga

Järgmine näide näitab, kuidas abstraktset klassi saab deklareerida muutujate, abstraktse meetodi ja avaliku meetodi abil. Avaliku meetodi avaldused on määratletud abstraktse klassi sees, kuid abstraktse meetodi põhiosa on tühi, mis on rakendatud abstraktse klassi alamklassis. Siin deklareeritakse abstraktset klassi laiendades kaks alaklassi. Nimetatud alaklass ruut arvutab ja prindib ruudu pindala väärtuse põhjal n muutuv. Nimetatud alaklass ristkülik arvutab ja prindib ristküliku pindala väärtuse põhjal h ja w muutujad. Avalik meetod, readData () nimetatakse parameetriga nimega tüüp abstraktse klassi muutuja (te) tuvastamiseks. Väärtus tüüp muutuja on 1 väärtuse lähtestamiseks n ja 2 väärtuse lähtestamiseks h ja w.

// Defineerige abstraktne klass abstraktse meetodi ja avaliku meetodiga
abstraktne klassi ala
avalik int n, h, w;
abstraktne tühine tulemus ();
public void readData (int tüüp)
kui (tüüp == 1)
n = 10;

veel
h = 20;
w = 30;



// Määrake ruudukujuline alaklass
klassi ruut laiendab ala
avalik tühine tulemus ()
// Arvuta ruudu pindala
int alaVal = n * n;
Süsteem.välja.println ("Ruudu pindala on" + areaVal);


// Määrake ristküliku alamklass
klassi ristkülik laiendab ala
avalik tühine tulemus ()
// Arvutage ristküliku pindala
int alaVal = h * w;
Süsteem.välja.println ("Ristküliku pindala on" + areaVal);


// Põhiklass
klass abstraktne2
public staatiline void main (String [] args)
// Loo ruuduklassi objekt
ruut ruut = uus ruut ();
ruutmeetrit.readData (1);
ruutmeetrit.tulemus();
// Loo ristkülikuklassi objekt
ristkülik rq = uus ristkülik ();
rq.readData (2);
rq.tulemus();

Väljund:

Pärast koodi käivitamist ilmub järgmine väljund. Väljund näitab ruudu pindala, kus väärtus n on 10 ja ristküliku pindala, kus väärtus h on 20, ja väärtus w on 30.

Näide 3: abstraktne klass koos konstruktoriga

Järgmine näide näitab, kuidas konstruktorit saab deklareerida ja kasutada abstraktse klassi sees. Abstraktse klassi konstruktor lähtestab väärtused a ja b. Abstraktne meetod, maxval () on rakendatud nimetatud alamklassis findMax. Super() meetodit kasutatakse alaklassi konstruktoris abstraktse klassi konstruktori kutsumiseks. Abstraktne meetod maxval () saab teada kahe numbri maksimaalse väärtuse, mis antakse alamklassi konstruktori parameetritele objekti loomise ajal.

// Defineerige abstraktne klass konstruktoriga
abstraktsed klassinumbrid
// deklareeri muutujad
kaitstud lõpp int a, b;
// abstraktne klassi konstruktor
avalikud numbrid (int x, int y)
seda.a = x;
seda.b = y;

// Avalik meetod
avalik abstrakt tühine maxval ();

// Määratlege alaklass
klassi findMax laiendab numbreid
// Alamklasside konstruktor
avalik findMax (int x, int y)
// Abstraktse klassi konstruktori kutsumine
super (x, y);

// Rakenda abstraktne meetod
public void maxval ()
kui (a> b)
Süsteem.välja.println (a + "on suurem kui" + b);

veel
Süsteem.välja.println (b + "on suurem kui" + a);



// Põhiklass
klassi abstrakt3
public staatiline void main (String [] args)
// Alamklassi objekti loomine
findMax fmax = uus findMax (34,89);
// Leidke maksimum
fmax.maxval ();

Väljund:

Pärast skripti käivitamist ilmub järgmine väljund. Siin, 34 ja 89 on antud konstruktori parameetriväärtustena. Neid väärtusi võrreldakse alamklassis rakendatud abstraktse meetodi abil ja trükitakse järgmine teade.

Järeldus:

Programmi organiseerituma ja arusaadavamaks muutmiseks kasutatakse abstraktset klassi. Abstraktsete klasside abil saab rühmitada mitu seotud klassi. Erinevate osadega abstraktse klassi kontseptsiooni ja rakendamist selgitatakse selles õpetuses lihtsate näidete abil. Loodan, et lugejad saavad pärast selle õpetuse lugemist abstraktse klassi kasutamisest aru saada ja oma koodis korralikult rakendada.

5 parimat arkaadmängu Linuxile
Tänapäeval on arvutid tõsised mängimiseks kasutatavad masinad. Kui te ei saa uut rekordit, teate, mida ma mõtlen. Selles postituses saate teada mõnda ...
Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...
League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...