Syntaksi:
abstrakti luokka classNamemuuttujan_nimet;
abstrakti menetelmä1 ();
julkinen menetelmä2 ()
lausunnot 1… N
Abstrakti luokka voi sisältää attribuutin tai muuttujia, abstraktin menetelmän ja normaalimenetelmän tai minkä tahansa niistä. Mutta abstraktin luokan alaluokka voi toteuttaa vain abstraktin luokan abstraktin menetelmän.
Esimerkki 1: Abstrakti luokka julkisella menetelmällä
Seuraava esimerkki osoittaa, kuinka abstrakti luokka voidaan julistaa julkisella menetelmällä ja abstraktin luokan käyttötapa luomalla alaluokka. Tässä abstrakti luokka sisältää julkisen menetelmän nimeltä yksityiskohdat() joka toteutetaan abstraktin luokan sisällä. Alaluokan kohde luodaan abstraktin luokan julkisen menetelmän käyttämiseksi.
// Määritä abstrakti luokka julkisella menetelmälläabstrakti luokan kirja
julkiset tyhjät tiedot ()
Järjestelmä.ulos.println ("Kirjan nimi: Opi PHP 15 minuutissa");
Järjestelmä.ulos.println ("Kirjoittajan nimi: Jake Wright");
Järjestelmä.ulos.println ("Alennushinta: 35 dollaria");
// Määritä alaluokka
luokan php laajentaa kirjaa
// Pääluokka
luokan tiivistelmä1
public staattinen void main (String [] argumentoi)
php bk = uusi php ();
bk.yksityiskohdat();
Tuotos:
Seuraava tulos tulee näkyviin koodin suorittamisen jälkeen. Tässä yksityiskohdat() kutsutaan abstraktin luokan menetelmää ja teksti tulostetaan menetelmästä.
Esimerkki 2: Abstrakti luokka abstraktilla menetelmällä ja julkisella menetelmällä
Seuraava esimerkki osoittaa, kuinka abstrakti luokka voidaan ilmoittaa muuttujilla, abstraktilla menetelmällä ja julkisella menetelmällä. Julkisen menetelmän lauseet määritellään abstraktin luokan sisällä, mutta abstraktin menetelmän runko on tyhjä, joka toteutetaan abstraktin luokan alaluokan sisällä. Tässä ilmoitetaan kaksi alaluokkaa laajentamalla abstraktia luokkaa. Nimetty alaluokka neliö- laskee ja tulostaa neliön pinta-alan arvon perusteella n muuttuja. Nimetty alaluokka suorakulmio laskee ja tulostaa suorakulmion alueen arvon perusteella h ja w muuttujat. Julkinen menetelmä, readData () kutsutaan parametrilla nimeltä tyyppi sen tunnistamiseksi, mitkä abstraktin luokan muuttujat aloitetaan. Arvo tyyppi muuttuja on 1 arvon alustaessa n ja 2 arvon alustamiseksi h ja w.
// Määritä abstrakti luokka abstraktilla menetelmällä ja julkisella menetelmälläabstrakti luokan alue
julkinen int n, h, w;
abstrakti mitätön tulos ();
public void readData (int-tyyppi)
jos (tyyppi == 1)
n = 10;
muu
h = 20;
w = 30;
// Määritä neliön alaluokka
luokan neliö laajentaa aluetta
public void tulos ()
// Laske neliön pinta-ala
int-alueVal = n * n;
Järjestelmä.ulos.println ("Neliön pinta-ala on" + areaVal);
// Määritä suorakulmion alaluokka
luokan suorakulmio laajentaa aluetta
public void tulos ()
// Laske suorakulmion pinta-ala
int-alueVal = h * w;
Järjestelmä.ulos.println ("Suorakulmion alue on" + areaVal);
// Pääluokka
luokan tiivistelmä2
public staattinen void main (String [] argumentoi)
// Luo neliön luokan objekti
neliö sq = uusi neliö ();
neliömetriä.readData (1);
neliömetriä.tulos();
// Luo suorakulmion luokan objekti
suorakulmio rq = uusi suorakulmio ();
rq.readData (2);
rq.tulos();
Tuotos:
Seuraava tulos tulee näkyviin koodin suorittamisen jälkeen. Tulos näyttää neliön alueen, jossa arvo n On 10 ja suorakulmion alue, jossa arvo h On 20, ja arvo w On 30.
Esimerkki 3: Abstrakti luokka rakentajan kanssa
Seuraava esimerkki osoittaa, kuinka konstruktori voidaan julistaa ja käyttää abstraktissa luokassa. Abstraktin luokan rakentaja alustaa arvon a ja b. Abstrakti menetelmä, maxval () on toteutettu nimellisessä alaluokassa findMax. super () menetelmää käytetään alaluokan konstruktorissa kutsumaan abstraktin luokan rakentaja. Abstrakti menetelmä maxval () selvittää kahden luvun enimmäisarvon, joka annetaan alaluokan rakentajan parametreille objektin luontihetkellä.
// Määritä abstrakti luokka konstruktorillaabstraktit luokanumerot
// julista muuttujat
suojattu loppu int a, b;
// abstrakti luokan rakentaja
julkiset numerot (int x, int y)
Tämä.a = x;
Tämä.b = y;
// Julkinen menetelmä
julkinen abstrakti void maxval ();
// Määritä alaluokka
luokan findMax laajentaa numeroita
// Alaluokan rakentaja
public findMax (int x, int y)
// Kutsu abstraktin luokan rakentajaa
super (x, y);
// Toteuta abstrakti menetelmä
public void maxval ()
jos (a> b)
Järjestelmä.ulos.println (a + "on suurempi kuin" + b);
muu
Järjestelmä.ulos.println (b + "on suurempi kuin" + a);
// Pääluokka
luokan tiivistelmä3
public staattinen void main (String [] argumentoi)
// Luo alaluokan objekti
findMax fmax = uusi findMax (34,89);
// Etsi suurin
fmax.maxval ();
Tuotos:
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Tässä, 34 ja 89 annetaan konstruktorin parametriarvoina. Näitä arvoja verrataan alaluokassa toteutetussa abstraktissa menetelmässä ja tulostetaan seuraava viesti.
Päätelmä:
Abstraktia luokkaa käytetään tekemään ohjelmasta järjestäytyneempi ja ymmärrettävämpi. Useat aiheeseen liittyvät luokat voidaan ryhmitellä abstraktien luokkien avulla. Abstraktin luokan käsite ja toteutus eri osilla selitetään tässä opetusohjelmassa yksinkertaisten esimerkkien avulla. Toivon, että lukijat pystyvät ymmärtämään abstraktin luokan käytön ja soveltamaan sitä koodissaan oikein luettuaan tämän opetusohjelman.