Mikä on abstrakti luokka?

Kuten abstrakti luokka, on olemassa myös abstrakteja menetelmiä. Julistamme sekä abstraktin menetelmän että abstraktin luokan abstraktilla avainsanalla. Tässä aiheesta aiomme oppia abstraktista luokasta PHP: ssä.

Perinnön käsitteen mukaisesti vanhemmaluokkaa jatketaan johdetulla luokalla. Vanhemmaluokan menetelmät toteutetaan tai määritetään johdettuilla luokilla. PHP antaa tapaa vanhemmalle luokalle olla tarkempi hyödyntämällä abstrakteja luokka- ja abstrakteja menetelmiä.

Abstrakti luokka sisältää pakollisesti yhden menetelmän abstraktina. Tässä abstraktissa luokassa voi olla myös muita kuin abstrakteja menetelmiä.

Syntaksi

Abstraktin luokan syntaksi yhdellä menetelmällä abstraktina.

abstract class DemoAbstractClass() (
abstract public function DemoAbstractMethod();
)

Abstrakti menetelmä

abstract public function DemoAbstractMethod();

Kuinka abstrakti luokka toimii PHP: ssä?

Tässä artikkelissa opitaan abstraktin luokan työskentelyä ja se menee näin.

Nyt kun tiedämme, että abstraktilla luokalla on pakollisesti yksi menetelmä abstraktina.

Voi olla myös ei-abstrakteja menetelmiä. Abstraktilla menetelmällä on vain perusluokan ilmoitus. Tarkoittaa, että siinä on vain nimiä ja parametreja, joilla ei ole muuta koodia.

Menetelmän määrittelemiseksi edelleen ja menetelmän kanssa työskentelemiseksi tämä menetelmä on toteutettava johdettuun luokkaan, joka laajentaa perusluokkaa. Muista myös, että tätä abstraktia luokkaa ei voida instantisoida objektien luomiseksi, mutta kantaluokasta johdettu luokka voidaan välittää objektien luomiseksi.

Esimerkkejä abstraktista luokasta PHP: ssä

Tässä on esimerkkejä alla olevasta abstraktista luokasta PHP: ssä

Esimerkki # 1

Alla olevassa ohjelmassa opimme mitä tapahtuu, kun abstraktin luokan objekti luodaan.

Tiivistelmäluokan oppilas luodaan sisältäen yhden abstraktin menetelmän opiskelijaluokan favouriteSubject () -menetelmän ja kaksi muuta ei abstraktia menetelmää, kuten setRollNo () ja getRollNO (), joka asettaa ja saa opiskelijan roolin, joka tehdään luomalla johdetun luokan objekti (laajentaa perusluokkaa).

<_?php
abstract class Student (
protected $m;
public function setRollNo($rollno) (
return $this->m = $rollno;
)
public function getRollNo() (
return $this->m;
)
abstract public function favouriteSubject()
)
class Radha extends Student (
public function favouriteSubject() (
return "English";
)
)
$obj = new Student; //this statement throws error as we cannot create object of class Student as it is defined as abstract
$obj = new Radha; //this statement does not throws error and executes correctly
$obj->favouriteSubject();
?>

Tulos:

Esimerkki 2

Tämä esimerkki selitetään askel askeleelta jäljempänä, sen jälkeen kun ohjelmalähtö ja tämän esimerkin koodi.

Koodi

abstract class Student(
protected $m;
abstract public function calulatePercentage();
public function setMarks($marks) (
return $this->m = $marks;
)
public function favoriteSubject() (
return 'Favorite subject is English';
)
)
class Ram extends Student(
public function calulatePercentage()(
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Ram is '.$percentage. '%' .'
';
)
)
class Sherry extends Student(
public function calulatePercentage()(
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Sherry is '.$percentage. '%' .'
';
)
public function favoriteSubject() (
return 'Favorite subject is Maths';
)
)
$ram = new Ram();
$ram->setMarks(92);
echo $ram->calulatePercentage();
echo $ram->favoriteSubject();
echo ' ';
$sherry = new Sherry();
$sherry->setMarks(97);
echo $sherry->calulatePercentage();
echo $sherry->favoriteSubject();
abstract class Student(
protected $m;
abstract public function calulatePercentage();
public function setMarks($marks) (
return $this->m = $marks;
)
public function favoriteSubject() (
return 'Favorite subject is English';
)
)
class Ram extends Student(
public function calulatePercentage()(
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Ram is '.$percentage. '%' .'
';
)
)
class Sherry extends Student(
public function calulatePercentage()(
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Sherry is '.$percentage. '%' .'
';
)
public function favoriteSubject() (
return 'Favorite subject is Maths';
)
)
$ram = new Ram();
$ram->setMarks(92);
echo $ram->calulatePercentage();
echo $ram->favoriteSubject();
echo ' ';
$sherry = new Sherry();
$sherry->setMarks(97);
echo $sherry->calulatePercentage();
echo $sherry->favoriteSubject();

Tulos:

Abstraktia luokkaa voidaan kutsua johdettujen luokkien luurankoksi. Tässä yllä olevassa esimerkissä julistamme abstraktin luokan Opiskelijan ja ominaisuuden nimeltään $ m oppilaan pisteille.

Selitys esimerkistä # 2

abstract class Student (
abstract public function calulatePercentage();
)

Abstraktia luokkaa voidaan kutsua johdettujen luokkien luurankoksi. Tässä esimerkissä ilmoitamme abstraktin luokan ja menetelmät yhdessä muiden menetelmien kanssa.

Yllä olevassa esimerkissä olemme julistaneet abstraktien luokan oppilaiden kanssa abstrakteja menetelmiä laskemaan opiskelijan prosenttiosuuden annettujen pisteiden kanssa.

Olemme myös luoneet menetelmiä (jotka eivät ole abstrakteja) asettamaan opiskelijan merkit ja saada opiskelijan suosikki aihe.

abstract class Student(
abstract public function calulatePercentage();
public function setMarks($marks) (
return $this->m = $marks;
)
public function favoriteSubject() (
return 'Favorite subject is English';
)
)

Abstraktin luokan oppilaan objektien luomiseksi meidän on laajennettava luokan oppilasta ja luotava siitä johdettuja luokkia. Perusluokka käyttää laajennettua avainsanaa, jotta perusluokka voi laajentua. Kun luokkaa jatketaan, voimme nyt käyttää perusluokan menetelmiä.

Yllä olevassa esimerkissä Ram on johdettu luokka, joka laajentaa perusluokan oppilasta. Se käyttää laajennettua avainsanaa. Nyt olemme laskeneet prosenttimäärän () menetelmän Ramin saamien pisteiden prosenttimäärän laskemiseksi.

class Ram extends Student(
public function calulatePercentage()(
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Ram is '.$percentage. '%' .'
';
)
)

Yhden luokan julistaminen, joka laajentaa perusluokan oppilasta meille oppimaan lisää.

Yllä olevassa esimerkissä olemme luoneet Sherryn johdettuun luokkaan, joka on luotu perusluokan Opiskelijalta. Tämä käyttää laajennettua avainsanaa. Sillä on kaksi toimintoa, joista toinen julistettiin abstrakteiksi, calulatePercentage () -menetelmä perusluokassa, toinen on favoriteSubject () -menetelmä, joka ei ole abstrakti.

class Sherry extends Student(
public function calulatePercentage()(
$percentage = ($this->m /100 ) * 100;
return 'The percentage of Sherry is '.$percentage. '%' .'
';
)
public function favoriteSubject() (
return 'Favorite subject is Maths';
)
)

Nyt luomme perusluokan objekti ja johdetun luokan objekti, joka heittää virheen. Koska emme voi pilkata abstraktiksi julistettua luokkaa.

Siten vain johdetun luokan objekti voidaan luoda. Kun tämä on tehty, tätä objektia käyttämällä kutsutaan abstraktiksi menetelmäksi, ei abstrakteiksi menetelmäksi, molemmat jäljempänä esitetyllä tavalla.

$ram = new Ram();
$ram->setMarks(92);
echo $ram->calculatePercentage();
echo $ram->favoriteSubject();
echo ' ';
$sherry = new Sherry();
$sherry->setMarks(97);
echo $sherry->calculatePercentage();
echo $sherry->favoriteSubject();
$ram = new Ram();
$ram->setMarks(92);
echo $ram->calculatePercentage();
echo $ram->favoriteSubject();
echo ' ';
$sherry = new Sherry();
$sherry->setMarks(97);
echo $sherry->calculatePercentage();
echo $sherry->favoriteSubject();

johtopäätös

Toivon, että tässä artikkelissa opit siitä, kuinka abstrakti luokka julistetaan, miten se toimii, kuinka sitä jatketaan laajentamalla avainsanaa, kuinka abstrakti menetelmä ilmoitetaan perusluokassa ja miten se toteutetaan johdetussa luokassa. Selitetyt esimerkit auttavat sinua oppimaan konseptin helposti. Toivottavasti se valmistettiin tarpeeksi hyödylliseksi ymmärtää ja harjoittaa enemmän.

Suositellut artikkelit

Tämä on opas tiivistelmäluokkaan PHP: ssä. Tässä keskustellaan kuinka abstraktiluokka toimii PHP: ssä näytekoodin ja sopivien tulosten kanssa. Saatat myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Objekti PHP: ssä
  2. PHP-vakiot
  3. Eväste PHP: ssä
  4. Kuviot PHP: ssä
  5. Faktoriaalinen PHP: ssä
  6. PHP-taikuusvakiot
  7. Abstrakti luokka luokassa C ++
  8. PHP-rekursiivinen toiminto
  9. Rekursiivinen toiminto Pythonissa
  10. Rekursiivinen toiminto C: ssä
  11. Rekursiivinen toiminto JavaScript: ssä