Sintakse:
abstraktā klase classNamemainīgie_nosaukumi;
abstraktā metode1 ();
publiskā metode2 ()
paziņojumi 1… N
Abstraktā klase var saturēt atribūtu vai mainīgos, abstrakto metodi un parasto metodi vai jebkuru no tiem. Bet abstraktās klases apakšklase var īstenot tikai abstraktās klases abstrakto metodi.
1. piemērs: Abstrakta klase ar publisku metodi
Šis piemērs parāda, kā jūs varat deklarēt abstraktu klasi ar publisku metodi un abstraktas klases izmantošanas veidu, izveidojot apakšklasi. Šeit abstraktā klase satur publisku metodi ar nosaukumu informācija () kas tiek realizēts abstraktās klases iekšienē. Apakšklases objekts tiek izveidots, lai piekļūtu abstraktās klases publiskajai metodei.
// Definējiet abstrakto klasi ar publisko metodiabstrakta klases grāmata
publiska anulēta informācija ()
Sistēma.ārā.println ("Grāmatas nosaukums: iemācieties PHP 15 minūtēs");
Sistēma.ārā.println ("Autora vārds: Džeiks Raits");
Sistēma.ārā.println ("Atlaides cena: 35 USD");
// Definējiet apakšklasi
klases php paplašina grāmatu
// Galvenā klase
klases referāts1
public static void main (String [] args)
php bk = jauns php ();
bk.informācija ();
Izeja:
Pēc koda palaišanas parādīsies šāda izeja. Lūk, informācija () tiek saukta abstraktās klases metode, un teksts tiek izdrukāts no metodes.
2. piemērs: Abstraktā klase ar abstrakto metodi un publisko metodi
Šis piemērs parāda, kā abstrakto klasi var deklarēt ar mainīgajiem, abstraktu metodi un publisku metodi. Publiskās metodes paziņojumi ir definēti abstraktās klases iekšienē, bet abstraktās metodes pamatteksts ir tukšs, kas tiek ieviests abstraktās klases apakšklasē. Šeit tiek pasludinātas divas apakšklases, paplašinot abstrakto klasi. Nosauktā apakšklase kvadrāts aprēķinās un izdrukās kvadrāta laukumu, pamatojoties uz vērtību n mainīgais. Nosauktā apakšklase taisnstūris aprēķinās un izdrukās taisnstūra laukumu, pamatojoties uz vērtību h un w mainīgie. Publiskā metode, readData () tiek izsaukts ar parametru ar nosaukumu tips lai noteiktu, kurš (-ie) abstraktās klases mainīgais (-i) tiks inicializēti. Vērtība tips mainīgais būs 1, lai inicializētu vērtību n un 2 vērtības inicializēšanai h un w.
// Definējiet abstraktu klasi ar abstraktu metodi un publisku metodiabstrakts klases apgabals
public int n, h, w;
abstrakts tukšs rezultāts ();
public void readData (int tips)
ja (tips == 1)
n = 10;
cits
h = 20;
w = 30;
// Definējiet kvadrātveida apakšklasi
klases laukums paplašina laukumu
public void rezultāts ()
// Aprēķiniet kvadrāta laukumu
int apgabalsVal = n * n;
Sistēma.ārā.println ("Kvadrāta laukums ir" + areaVal);
// Definējiet taisnstūra apakšklasi
klases taisnstūris paplašina laukumu
public void rezultāts ()
// Aprēķiniet taisnstūra laukumu
int apgabalsVal = h * w;
Sistēma.ārā.println ("Taisnstūra laukums ir" + areaVal);
// Galvenā klase
klase abstrakts2
public static void main (String [] args)
// Izveidot kvadrātveida klases objektu
kvadrātveida kv = jauns kvadrāts ();
kv.readData (1);
kv.rezultāts ();
// Izveidot taisnstūra klases objektu
taisnstūris rq = jauns taisnstūris ();
rq.readData (2);
rq.rezultāts ();
Izeja:
Pēc koda palaišanas parādīsies šāda izeja. Rezultātā tiek parādīts laukuma laukums, kur vērtība n ir 10 un taisnstūra laukums, kur vērtība h ir 20, un vērtība w ir 30.
3. piemērs: Abstrakta klase ar konstruktoru
Šis piemērs parāda, kā konstruktoru var deklarēt un izmantot abstraktā klasē. Abstraktās klases konstruktors inicializēs a un b. Abstraktā metode, maxval () tiek ieviesta nosauktajā apakšklasē atrastMaks. super () metodi apakšklases konstruktorā izmanto, lai izsauktu abstraktas klases konstruktoru. Abstraktā metode maxval () uzzinās divu skaitļu maksimālo vērtību, kas objekta izveides laikā tiks piešķirta apakšklases konstruktora parametriem.
// Definējiet abstraktu klasi ar konstruktoruabstrakti klases numuri
// deklarēt mainīgos
aizsargāts gala int a, b;
// abstraktās klases konstruktors
publiskie numuri (int x, int y)
šo.a = x;
šo.b = y;
// Publiskā metode
publisks abstrakts void maxval ();
// Definējiet apakšklasi
klases findMax paplašina skaitļus
// Apakšklases konstruktors
public findMax (int x, int y)
// Zvaniet abstraktās klases konstruktoram
super (x, y);
// Īstenot abstraktu metodi
public void maxval ()
ja (a> b)
Sistēma.ārā.println (a + "ir lielāks par" + b);
cits
Sistēma.ārā.println (b + "ir lielāks par" + a);
// Galvenā klase
klases abstrakts3
public static void main (String [] args)
// Izveidot apakšklases objektu
findMax fmax = jauns findMax (34,89);
// Atrodiet maksimumu
fmax.maxval ();
Izeja:
Pēc skripta palaišanas parādīsies šāda izeja. Šeit, 34 un 89 tiek doti kā konstruktora parametru vērtības. Šīs vērtības tiek salīdzinātas abstraktā metodē, kas tiek ieviesta apakšklasē, un tiek izdrukāts šāds ziņojums.
Secinājums:
Lai programmu padarītu organizētāku un saprotamāku, tiek izmantota abstrakta klase. Vairākas saistītās klases var grupēt, izmantojot abstraktas klases. Šajā apmācībā, izmantojot vienkāršus piemērus, ir izskaidrots abstraktās klases ar dažādām daļām jēdziens un ieviešana. Es ceru, ka lasītāji varēs saprast abstraktās klases lietojumu un pareizi pielietot to savā kodā pēc šīs apmācības izlasīšanas.