Rumah > pembangunan bahagian belakang > tutorial php > Pewarisan PHP dan Polimorfisme: Set Alat Berkuasa untuk Pengaturcaraan Berorientasikan Objek

Pewarisan PHP dan Polimorfisme: Set Alat Berkuasa untuk Pengaturcaraan Berorientasikan Objek

PHPz
Lepaskan: 2024-02-19 21:28:02
ke hadapan
585 orang telah melayarinya

Editor PHP Youzi akan membawa anda meneroka set alat yang berkuasa dalam pengaturcaraan berorientasikan objek: pewarisan PHP dan polimorfisme. Melalui pewarisan, subkelas boleh mewarisi sifat dan kaedah kelas induk untuk mencapai penggunaan semula dan pengembangan kod manakala polimorfisme membenarkan objek berbeza untuk bertindak balas secara berbeza kepada mesej yang sama, meningkatkan fleksibiliti dan kebolehselenggaraan kod. Kedua-dua konsep ini adalah teras pengaturcaraan berorientasikan objek, dan menguasainya akan menjadikan kod PHP anda lebih elegan dan cekap.

Polymorphism bermaksud kelas boleh mempunyai pelbagai bentuk. Dalam php polimorfisme boleh dicapai melalui pewarisan dan antara muka. Apabila kelas mewarisi daripada kelas lain, ia boleh mewarisi sifat dan kaedah kelas induk, dan ia boleh mengatasi sifat dan kaedah ini. Ini membolehkan anda membuat kelas dengan gelagat berbeza, tetapi semuanya mempunyai kelas induk yang sama. Sebagai contoh, anda boleh mencipta warisan kelas Animal类,其中包含所有动物的通用属性和方法,如名称、年龄和饮食类型。然后,您可以创建一个Dog类,从Animal dan mengatasi kaedah jenis diet supaya ia mengembalikan "daging".

Warisan dan polimorfisme adalah alat yang berkuasa berorientasikan objek pengaturcaraan, dan ia boleh membantu anda menulis kod yang lebih fleksibel dan berskala. Berikut ialah beberapa kod demo yang menunjukkan cara menggunakan warisan dan polimorfisme:

class Person {
protected $name;
protected $age;
protected $address;

public function __construct($name, $age, $address) {
$this->name = $name;
$this->age = $age;
$this->address = $address;
}

public function getName() {
return $this->name;
}

public function getAge() {
return $this->age;
}

public function getAddress() {
return $this->address;
}
}

class Student extends Person {
protected $courses;
protected $grades;

public function __construct($name, $age, $address, $courses, $grades) {
parent::__construct($name, $age, $address);
$this->courses = $courses;
$this->grades = $grades;
}

public function getCourses() {
return $this->courses;
}

public function getGrades() {
return $this->grades;
}
}

class Animal {
protected $name;
protected $age;
protected $dietType;

public function __construct($name, $age, $dietType) {
$this->name = $name;
$this->age = $age;
$this->dietType = $dietType;
}

public function getName() {
return $this->name;
}

public function getAge() {
return $this->age;
}

public function getDietType() {
return $this->dietType;
}
}

class Dog extends Animal {
public function getDietType() {
return "肉食";
}
}

$student = new Student("John Doe", 20, "123 Main Street", ["Math", "Science", "English"], ["A", "B", "C"]);
echo $student->getName() . " is a student who is " . $student->getAge() . " years old and lives at " . $student->getAddress() . ". ";
echo "He is taking " . implode(", ", $student->getCourses()) . " and has grades of " . implode(", ", $student->getGrades()) . ".<br>";

$dog = new Dog("Buddy", 5, "carnivore");
echo $dog->getName() . " is a dog who is " . $dog->getAge() . " years old and is a " . $dog->getDietType() . ".<br>";
Salin selepas log masuk

Kod demo di atas mula-mula mentakrifkan objek Person类,其中包含所有人的通用属性和方法。然后,它定义了一个Student类,从Person类继承,并添加学生特有的属性和方法。最后,它创建了一个Student对象和一个Dog dan mencetak sifat dan kaedahnya.

Atas ialah kandungan terperinci Pewarisan PHP dan Polimorfisme: Set Alat Berkuasa untuk Pengaturcaraan Berorientasikan Objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:lsjlt.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan