Maison >développement back-end >tutoriel php >Héritage et polymorphisme PHP : un ensemble d'outils puissants pour la programmation orientée objet
L'éditeur PHP Youzi vous fera découvrir le puissant ensemble d'outils de la programmation orientée objet : l'héritage et le polymorphisme PHP. Grâce à l'héritage, les sous-classes peuvent hériter des propriétés et des méthodes de la classe parent pour réaliser la réutilisation et l'expansion du code, tandis que le polymorphisme permet à différents objets de répondre différemment au même message, améliorant ainsi la flexibilité et la maintenabilité du code. Ces deux concepts sont au cœur de la programmation orientée objet, et les maîtriser rendra votre code PHP plus élégant et efficace.
Le polymorphisme signifie qu'une classe peut avoir plusieurs formes. Dans php le polymorphisme peut être obtenu grâce à l'héritage et aux interfaces. Lorsqu'une classe hérite d'une autre classe, elle peut hériter des propriétés et des méthodes de la classe parent et elle peut remplacer ces propriétés et méthodes. Cela vous permet de créer des classes avec des comportements différents, mais elles ont toutes la même classe parent. Par exemple, vous pouvez créer un héritage de classe Animal
类,其中包含所有动物的通用属性和方法,如名称、年龄和饮食类型。然后,您可以创建一个Dog
类,从Animal
et remplacer la méthode du type de régime afin qu'elle renvoie « viande ».
L'héritage et le polymorphisme sont de puissants outils de programmationorientée objet, et ils peuvent vous aider à écrire du code plus flexible et évolutif. Voici un code de démonstration montrant comment utiliser l'héritage et le polymorphisme :
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>";
Le code de démonstration ci-dessus définit d'abord un objet
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!