Dalam proses pengaturcaraan berorientasikan objek, pewarisan kelas adalah konsep yang sangat penting. Warisan membolehkan penggunaan semula kod, menjimatkan masa dan tenaga pengaturcara. Walau bagaimanapun, selalunya terdapat situasi di mana anda perlu menggunakan kelas induk sedia ada, tetapi juga menambah atau menukar beberapa kaedah dan atribut unik subkelas tersebut. Pada masa ini, keperluan untuk "kelas rotor kelas induk" muncul dengan segera. Artikel ini akan meneroka cara menukar kelas induk Php kepada subkelas.
Mengapa kelas rotor kelas induk Php
Dalam proses pengaturcaraan, kita sering mendapati bahawa kelas tertentu sangat sesuai untuk keperluan kita, tetapi kelas ini kekurangan beberapa kaedah dan atribut yang kita perlukan . Jika kami mengubah suai kelas induk asal secara langsung, kelas kami yang diubah suai akan menjadi kelas baharu. Oleh itu, kita tidak dapat tidak perlu mencipta subkelas baharu dan mewarisi kebanyakan sifat dan kaedahnya daripada kelas induk sedia ada. Dalam kes ini, keperluan "kelas ibu bapa kepada kelas kanak-kanak" akan muncul.
Cara melaksanakan kelas rotor kelas induk Php
Pelaksanaan kelas rotor kelas induk Php boleh menggunakan kata kunci yang dipanggil extends. Kata kunci extends dalam Php digunakan untuk melaksanakan pewarisan Penggunaannya adalah seperti berikut:
class ChildClass extends ParentClass { //子类的属性和方法 }
Melalui kata kunci extends, kami boleh mewarisi kebanyakan kaedah dan sifat kelas induk ke dalam subkelas kami masa yang sama, tambahkan kaedah dan sifat baharu yang kami perlukan dalam ChildClass.
Sebenarnya, kaedah ini melaksanakan perhubungan warisan, bukannya penukaran "kelas ibu bapa kepada kelas anak" sebenar. Oleh itu, kita perlu memberi perhatian kepada perkara berikut:
Berikut ialah contoh mudah yang menggambarkan cara menukar kelas induk Php kepada subkelas:
class MyBaseClass { private $myBaseVar; public function __construct(){ echo "Construction of Base class\n"; $this->myBaseVar = "Initial value"; } public function getMyBaseVar() { return $this->myBaseVar; } } class MySubClass extends MyBaseClass { private $mySubVar; public function __construct(){ echo "Construction of Sub class\n"; parent::__construct(); $this->mySubVar = "Another value"; } public function getMySubVar() { return $this->mySubVar; } } $obj = new MySubClass(); echo $obj->getMyBaseVar() . "\n"; echo $obj->getMySubVar() . "\n";
Dalam contoh ini, kita mula-mula mentakrifkan kelas yang dipanggil Kelas asas MyBaseClass , yang mempunyai pembolehubah ahli persendirian bernama myBaseVar. Untuk mendapatkan nilai pembolehubah myBaseVar, kami melaksanakan fungsi ahli getMyBaseVar().
Kemudian kami mentakrifkan kelas yang dipanggil MySubClass, yang mewarisi daripada MyBaseClass. Untuk memenuhi keperluan pembina MyBaseClass, kami menggunakan parent::__construct() dalam pembina untuk memanggil pembina secara eksplisit dalam MyBaseClass. Begitu juga, kami juga menambah pembolehubah ahli persendirian bernama mySubVar dan melaksanakan fungsi ahli getMySubVar().
Akhirnya kami mencipta contoh MySubClass bernama $obj dan menguji kesan dua fungsi ahli getMyBaseVar() dan getMySubVar(). Outputnya adalah seperti berikut:
Construction of Sub class Construction of Base class Initial value Another value
Seperti yang dapat dilihat daripada output, pembina kelas induk berjaya dipanggil, dan subkelas bukan sahaja memperoleh sifat pembolehubah myBaseVar kelas induk, tetapi juga menambah pembolehubah bernama Harta peribadi mySubVar.
Kesimpulan
Apabila kita perlu melanjutkan kelas sedia ada, kita boleh mencipta subkelas yang mewarisi kelas induk. Melalui pewarisan, subkelas boleh memperoleh kebanyakan sifat dan kaedah kelas induk, dan kita juga boleh menambah sifat dan kaedah baharu pada subkelas. Dengan menggunakan parent::__construct() dalam pembina, kita boleh memastikan bahawa pembina dalam kelas induk berjaya dipanggil, dengan itu memastikan ahli dalam kelas induk boleh dimulakan secara normal. Di atas adalah kaedah pelaksanaan kelas rotor kelas induk Php Saya harap ia akan membantu pelajar pengaturcaraan Php.
Atas ialah kandungan terperinci Bagaimana untuk menukar kelas induk php kepada subkelas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!