Наследование ООП PHP: изучение методов наследования на примерах кода

«PHP ООП — наследование» — это тема, связанная с объектно-ориентированным программированием (ООП) в PHP. Наследование — это фундаментальная концепция ООП, позволяющая классу наследовать свойства и методы другого класса, известного как родительский или базовый класс.

Вот некоторые распространенные методы и примеры кода, связанные с наследованием в PHP:

  1. Расширение класса.
    Чтобы создать дочерний класс, который наследуется от родительского класса, вы можете использовать ключевое слово extends. Вот пример:
class ParentClass {
    public function sayHello() {
        echo "Hello from the parent class!";
    }
}
class ChildClass extends ParentClass {
    // ChildClass inherits the `sayHello` method from ParentClass
}
$child = new ChildClass();
$child->sayHello(); // Output: Hello from the parent class!
  1. Переопределение методов.
    Дочерние классы могут переопределять методы, унаследованные от родительского класса, путем определения метода с тем же именем. Вот пример:
class ParentClass {
    public function sayHello() {
        echo "Hello from the parent class!";
    }
}
class ChildClass extends ParentClass {
    public function sayHello() {
        echo "Hello from the child class!";
    }
}
$child = new ChildClass();
$child->sayHello(); // Output: Hello from the child class!
  1. Доступ к родительским методам.
    Дочерние классы также могут вызывать переопределенные родительские методы с помощью ключевого слова parent. Вот пример:
class ParentClass {
    public function sayHello() {
        echo "Hello from the parent class!";
    }
}
class ChildClass extends ParentClass {
    public function sayHello() {
        parent::sayHello(); // Call the parent's sayHello method
        echo "Hello from the child class!";
    }
}
$child = new ChildClass();
$child->sayHello();
// Output:
// Hello from the parent class!
// Hello from the child class!

Это всего лишь несколько примеров методов, связанных с наследованием в PHP. Существует множество других концепций и методов, таких как абстрактные классы, интерфейсы и т. д.