⊗ppOpFnMt 64 of 107 menu

Mbinu za Abstract katika OOP kwenye PHP

Madarasa ya abstract pia yanaweza kuwa na mbinu za abstract. Mbinu kama hizi haipaswi kuwa na utekelezaji, na zinahitajika ili kuonyesha kuwa mbinu kama hizi zinapaswa kuwa kwenye wanaodhalilisha. Na kwa kweli utekelezaji wa mbinu kama hizi - ni kazi ya wanaodhalilisha.

Ili kutangaza mbinu kuwa abstract, wakati wa kutangaza yake unapaswa kuandika neno kuu abstract.

Tujaribu kwenye mazoezi. Hebu tuchukulie, kuwa wanaodhalilisha wote wa darasa User wanapaswa kuwa na mbinu increaseRevenue.

Mbinu hii inapaswa kuchukua mapato ya sasa ya mtumiaji na kuwaongeza kwa kiwango fulani, kilichopitishwa kama parameta.

Darasa User lenyewe halijui ni mapato gani haswa atakayopata mrithi - maana kwa mfanyakazi hii ni mshahara, lakini kwa mwanafunzi - ni ufadhili. Kwa hivyo kila mrithi atatekeleza mbinu hii kwa njia yake mwenyewe.

Kiini hapa ni kwamba, mbinu ya abstract ya darasa User inamlazimu programu kutekeleza mbinu hii kwenye wanaodhalilisha, vinginevyo PHP itatoa hitilafu. Kwa hivyo wewe, au programu mwingine, anayefanya kazi na code yako, hataweza kusahau kutekeleza mbinu inayohitajika kwenye mrithi.

Basi, tujaribu kwenye mazoezi. Ongeza mbinu ya abstract increaseRevenue kwenye darasa User:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Mbinu ya Abstract bila mwili: abstract public function increaseRevenue($value); } ?>

Hebu darasa letu Employee libaki bila mabadiliko. Katika kesi hii, hata kama hutaunda kitu cha darasa Employee, lakini ukizindua code tu, ambayo inafafanua madarasa yetu, - PHP itatoa hitilafu.

Sasa tuandaye utekelezaji wa mbinu increaseRevenue kwenye darasa Employee:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Tuandaye utekelezaji wa mbinu: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Tukague kazi ya darasa letu:

<?php $employee = new Employee; $employee->setName('john'); $employee->setSalary(1000); $employee->increaseRevenue(100); echo $employee->getSalary(); ?>

Tekeleze mbinu increaseRevenue pia kwenye darasa Student. Lakini sasa mbinu yetu itaongeza tayari ufadhili:

<?php class Student extends User { private $scholarship; // ufadhili public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Mbinu inaongeza ufadhili: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

Ongeza kwenye darasa lako User mbinu ya abstract ileile increaseRevenue. Andaa utekelezaji wa mbinu hii kwenye madarasa Employee na Student.

Kwenye darasa Figure fanya mbinu za abstract za kupata eneo na mzingo wa umbo.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa