Наследование в PHP: Отношение классов родитель-потомок

Наследование в PHP: Отношение классов родитель-потомок

05.04.2023
188
Класс, который наследует свойства и методы, называется классом-потомком, а класс, свойства и методы которого наследуются, называется классом-родителем.

Отношение классов родитель-потомок

Отношение между классами родитель и потомок является одним из ключевых аспектов наследования в PHP. Класс-потомок может наследовать свойства и методы класса-родителя, но также может определять свои собственные свойства и методы. Класс-потомок также может переопределять методы класса-родителя, если это необходимо.

Рассмотрим более подробно, что такое отношение между классами родитель-потомок на примере.

Предположим, у нас есть класс-родитель Vehicle, который содержит общие свойства и методы для всех видов транспорта. Класс-потомок Car наследует свойства и методы класса-родителя Vehicle, но также определяет свои собственные свойства и методы, которые характерны только для автомобилей.

class Vehicle {
  public $brand; // марка
  public $model; // модель

  // метод для запуска двигателя
  public function startEngine() {
    echo "Двигатель запущен.";
  }
}

class Car extends Vehicle {
  public $color; // цвет
  public $numDoors; // кол-во дверей

  // метод для включения кондиционера
  public function turnOnAC() {
    echo "Кондиционер включен.";
  }
}

В этом примере класс Car наследует свойства brand, model и метод startEngine от класса Vehicle. Кроме того, класс Car имеет свои собственные свойства color и numDoors, а также метод turnOnAC, который характерен только для автомобилей.

Переопределение методов

Класс-потомок может переопределять методы класса-родителя, если это необходимо. Это позволяет изменить поведение метода в классе-потомке, не затрагивая его в классе-родителе.

Рассмотрим пример с классами Animal и Dog. Класс Animal содержит метод makeSound, который выводит звук, характерный для животного. Класс Dog наследует метод makeSound от класса-родителя Animal, но переопределяет его, чтобы выдавать звук лая собаки.

class Animal {
  // метод для издания звука
  public function makeSound() {
    echo "Animal sound.";
  }
}

class Dog extends Animal {
  // переопределение метода для издания звука лая
  public function makeSound() {
    echo "Woof woof!";
  }
}

В этом примере класс Dog переопределяет метод makeSound класса-родителя Animal, чтобы вывести звук лая собаки.

Заключение

В PHP наследование классов родитель-потомок является фундаментальным механизмом, который позволяет создавать более гибкие и мощные классы. Он позволяет создавать более эффективный и читаемый код, делая его более модульным и удобным для использования.