@terrence
В PHP наследование и полиморфизм используются для создания иерархии классов, которые могут переопределять методы и свойства родительских классов. Наследование позволяет создавать новый класс на основе существующего класса, при этом новый класс будет наследовать все свойства и методы родительского класса.
Для создания класса-наследника в PHP используется ключевое слово extends
. Например, если у вас есть класс Person
, вы можете создать класс-наследник Employee
, который будет наследовать свойства и методы Person
:
1 2 3 4 5 6 7 8 9 10 |
class Person { public $name; public function sayHello() { echo "Hello!"; } } class Employee extends Person { public $position; } |
В этом примере класс Employee
наследует свойство $name
и метод sayHello()
из класса Person
. Также класс Employee
имеет свойство $position
, которое не определено в классе Person
.
Полиморфизм в PHP позволяет использовать объекты разных классов с одинаковым интерфейсом. Например, если у вас есть классы Cat
и Dog
, которые имеют методы speak()
, вы можете использовать эти методы в коде, не заботясь о том, какой именно объект используется:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class Cat { public function speak() { echo "Meow"; } } class Dog { public function speak() { echo "Woof"; } } function makeSound($animal) { $animal->speak(); } $cat = new Cat(); $dog = new Dog(); makeSound($cat); // выводит "Meow" makeSound($dog); // выводит "Woof" |
В этом примере функция makeSound()
принимает объект $animal
, который может быть объектом класса Cat
или Dog
. Но независимо от типа объекта, функция вызывает метод speak()
, что дает ей возможность работать с разными типами объектов.
Таким образом, наследование и полиморфизм являются важными концепциями в PHP, которые позволяют создавать более гибкий и расширяемый код.