⊗ppOpIfII 74 of 107 menu

Pewarisan dari Kelas dan Implementasi Antarmuka dalam OOP di PHP

Sebuah kelas dapat mewarisi dari kelas lain dan pada saat yang sama mengimplementasikan suatu antarmuka. Mari kita lihat contoh praktisnya.

Misalkan kita ingin membuat kelas Programmer, yang memiliki nama, gaji, dan daftar bahasa pemrograman yang dikuasai oleh programmer tersebut. Deskripsi kelas kita masih sangat samar-samar: ya, di dalam kelas akan ada nama, gaji, bahasa - tapi metode apa saja yang akan ada di kelas kita?

Mari kita deskripsikan kelas kita dengan lebih tepat menggunakan antarmuka iProgrammer:

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

Misalkan kita telah menyelidiki kelas-kelas yang sudah kita implementasikan dan, ternyata, kita sudah memiliki kelas Employee yang serupa. Ia tidak mengimplementasikan semua metode dari kelas Programmer, tetapi sebagian. Berikut adalah kode kelas yang sudah ada yang kita miliki:

<?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; } } ?>

Logis dalam kasus kita untuk membuat kelas baru kita Programmer mewarisi sebagian metode yang diperlukan dari kelas Employee (dan sebagiannya lagi akan kita implementasikan nanti di dalam kelas baru itu sendiri):

<?php class Programmer extends Employee { } ?>

Pada saat yang sama, kita tahu bahwa kelas Programmer harus mengimplementasikan antarmuka iProgrammer:

<?php class Programmer implements iProgrammer { } ?>

Mari gabungkan pewarisan dari kelas Employee dan implementasi antarmuka iProgrammer:

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

Hasilnya, kelas kita Programmer akan mewarisi dari kelas Employee metode __construct, getName dan getSalary, sedangkan metode addLang dan getLangs harus kita implementasikan sendiri:

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

Bagi antarmuka iProgrammer, tidak masalah apakah metode tersebut asli dari kelas atau diwariskan - yang penting, semua metode yang dideskripsikan harus terimplementasi.

Salin kode kelas Employee saya dan kode antarmuka iProgrammer. Jangan menyalin rancangan kelas Programmer saya - tanpa melihat kode saya, implementasikan kelas ini secara mandiri.

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