Dalam artikel sebelum ini, saya membawakan anda "Mengajar anda cara membezakan pembina dan pemusnah dalam kelas", yang memberi anda secara terperinci cara menggunakannya dalam kelas PHP menggunakan pembina dan pemusnah , dalam artikel ini kita akan terus melihat pengetahuan berkaitan pewarisan kelas PHP. Saya harap ia akan membantu semua orang.
Dalam PHP berorientasikan objek, kita boleh mewarisi kelas sedia ada melalui kelas yang diwarisi dipanggil kelas induk atau kelas asas ini dipanggil subkelas. Malah, subkelas boleh difahami sebagai lanjutan daripada kelas induk, dan subkelas boleh menambah fungsi baharu melebihi fungsi kelas induk. Subkelas juga boleh mewarisi pembina kelas induk Apabila subkelas dijadikan instantiated, PHP akan memanggil pembina dalam subkelas terlebih dahulu Apabila subkelas tidak wujud, ia akan memanggil pembina kelas induk.
<strong><span style="font-size: 20px;">extends</span></strong>
Warisi kata kunci
Dalam PHP, kami menggunakan kata kunci extends
untuk melaksanakan warisan kelas. Format sintaksnya adalah seperti berikut:
class 子类名 extends 父类名{ ... ... }
Apa yang perlu kita ambil perhatian ialah kelas hanya boleh mewarisi daripada kelas lain, tetapi kelas boleh mewarisi berbilang kelas. Iaitu, subkelas hanya boleh mempunyai satu kelas induk, tetapi kelas induk boleh mempunyai berbilang subkelas.
Mewarisi public
ahli
Dalam PHP, semua ahli kelas induk yang diubah suai dengan public
boleh menjadi sub- Kelas diwarisi.
Seterusnya mari kita lihat contohnya adalah seperti berikut:
<?php class father{ public $name, $url, $title; public function __construct(){ echo '基类中的构造函数<br>'; } public function demo(){ echo '基类中的成员方法<br>'; } } class son1 extends father{ } class son2 extends father{ public function __construct(){ echo '子类中的构造函数<br>'; } } $object = new son1(); $object -> demo(); $object2 = new son2(); $object2 -> demo(); ?>
Hasil keluaran:
Dalam contoh di atas, kelas asas ditakrifkan, kelas lain digunakan untuk mewarisi kelas asas ini, dan pada masa yang sama, percubaan dibuat untuk menggunakan subkelas untuk memanggil kaedah ahli dalam kelas asas. Akibatnya, semua ahli kelas induk yang diubah suai awam boleh diwarisi oleh subkelas.
Wariskan protected
ahli
Seperti yang dinyatakan di atas, kami menyebut bahawa ahli yang diubah suai melalui warisan public
boleh diwarisi oleh subkelas, dan terdapat satu lagi ahli protected
, ahli yang diubah suai olehnya adalah ahli yang tidak mahu diakses dari luar kelas Ia boleh difahami bahawa dengan mengubah suai ahli ini, ia adalah ahli yang dilindungi, yang hanya boleh diakses di dalam kelas, dan juga boleh diakses di dalam subkelas yang diakses secara dalaman, kita boleh menetapkan fungsi ahli dalam subkelas untuk mengakses ahli ini.
Contohnya adalah seperti berikut:
<?php class father{ public $name, $url, $title; public function __construct(){ echo '基类中的构造函数<br>'; } protected function demo(){ echo '基类中的成员方法<br>'; } } class son1 extends father{ } class son2 extends father{ public function __construct(){ echo '子类中的构造函数<br>'; } public function test(){ $this -> demo(); } } $object = new son1(); // $object -> demo(); // 在子类中调用父类使用 protected 修饰的成员方法会报错 $object2 = new son2(); $object2 -> test(); ?>
Hasil keluaran:
Daripada contoh di atas kita dapat melihat bahawa, Pembolehubah yang diubah suai oleh dilindungi juga boleh diakses dalam subkelas yang diwarisi.
Warisi<strong><span style="font-size: 20px;">private</span></strong>
peribadi
private
tidak dapat diakses di luar kelas, dan tidak dapat diakses oleh subkelas. persendirian. Tepatnya, ahli yang diubah suai secara peribadi tidak diwarisi oleh subkelas, dan secara semula jadi tidak boleh diakses oleh subkelas.
<?php class father{ private function demo(){ echo '基类中private的成员方法<br>'; } } class son extends father{ public function test(){ $this -> demo(); } } $object = new son(); $object -> test(); ?>
Contohnya adalah seperti berikut:
Jika anda berminat, anda boleh klik pada "Tutorial Video PHP" untuk mengetahui lebih lanjut tentang pengetahuan PHP.Atas ialah kandungan terperinci Bagaimana untuk mendapatkan warisan kelas PHP? (Perkongsian ringkasan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!