⊗ppOpIfII 74 of 107 menu

Pewarisan daripada Kelas dan Pelaksanaan Antara Muka dalam OOP dalam PHP

Kelas boleh mewarisi daripada kelas lain dan pada masa yang sama melaksanakan antara muka tertentu. Mari kita lihat contoh praktikal.

Katakan kita ingin membuat kelas Programmer, yang mempunyai nama, gaji dan senarai bahasa pengaturcaraan yang diketahui oleh pengaturcara tersebut. Penerangan kelas kita setakat ini agak kabur: ya, kelas akan mempunyai nama, gaji, bahasa - tetapi apakah kaedah yang akan ada dalam kelas kita?

Mari kita terangkan kelas kita dengan lebih tepat menggunakan antara muka iProgrammer:

<?php interface iProgrammer { public function __construct($name, $salary); public function getName(); public function getSalary(); public function getLangs(); public function addLang($lang); } ?>

Katakan kita telah menyelidik kelas yang sudah kita laksanakan dan, rupa-rupanya, kita sudah mempunyai kelas Employee yang serupa. Ia tidak melaksanakan semua kaedah kelas Programmer, tetapi sebahagian daripadanya. Berikut adalah kod kelas yang sudah sedia ada:

<?php class Employee { private $name; private $salary; public function __construct($name, $salary) { $this->name = $name; $this->salary = $salary; } public function getName() { return $this->name; } public function getSalary() { return $this->salary; } } ?>

Adalah logik dalam kes kita untuk membuat kelas baru Programmer mewarisi sebahagian kaedah yang diperlukan daripada kelas Employee (dan sebahagian lagi kita akan laksanakan kemudian dalam kelas baru itu sendiri):

<?php class Programmer extends Employee { } ?>

Pada masa yang sama, kita tahu bahawa kelas Pogrammer harus melaksanakan antara muka iProgrammer:

<?php class Programmer implements iProgrammer { } ?>

Mari gabungkan pewarisan daripada kelas Employee dan pelaksanaan antara muka iProgrammer:

<?php class Programmer extends Employee implements iProgrammer { } ?>

Hasilnya, kelas Pogrammer kita akan mewarisi daripada kelas Employee kaedah __construct, getName dan getSalary, sementara kaedah addLang dan getLangs kita perlu laksanakan sendiri:

<?php class Programmer extends Employee implements iProgrammer { public function addLang($lang) { // pelaksanaan } public function getLangs() { // pelaksanaan } } ?>

Antara muka iProgrammer tidak peduli, sama ada kaedah itu asli bagi kelas atau diwarisi - yang penting, semua kaedah yang diterangkan mesti dilaksanakan.

Salin kod kelas Employee saya dan kod antara muka iProgrammer. Jangan salin rangka kelas Programmer saya - tanpa melihat kod saya, laksanakan kelas ini secara sendiri.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak