0Pricing
PHP Academy · Урок

Наследование

Повторно используйте код и расширяйте функциональность с помощью наследования

«Наследование» — бесплатный урок PHP Academy на CoddyKit. Это урок 3 из 5. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 5 уроков всего.

Наследование в PHP

Наследование в PHP

Добро пожаловать на следующий урок! На этом уроке Вы узнаете о наследовании — одной из ключевых концепций объектно-ориентированного программирования (ООП), которая позволяет расширять функциональность класса. Начнём!

Наследование — иллюстрация 1

Что такое наследование

Что такое наследование

Наследование — это механизм в ООП, который позволяет одному классу (дочернему классу) наследовать свойства и методы другого класса (родительского класса). Это способствует повторному использованию кода и формированию иерархии в программировании.

Пример: Класс Car может быть родительским для классов Sedan и SUV.

Определение наследования

Определение наследования

Используйте ключевое слово extends, чтобы создать дочерний класс, наследующий свойства и методы родительского класса. Пример:

Совет: Используйте наследование, чтобы не дублировать код.

<h2>Defining Inheritance</h2>
<p>Use the <code>extends</code> keyword to create a child class that inherits from a parent class. Example:</p>

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

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

Дочерние классы могут переопределять методы родительского класса, чтобы реализовать определённую функциональность. Пример:

<?php
  class Vehicle {
    public function drive() {
      echo "Driving a generic vehicle.";
    }
  }

  class Car extends Vehicle {
    public function drive() {
      echo "Driving a car.";
    }
  }

  $car = new Car();
  $car->drive(); // Outputs: Driving a car.
?>

Ключевое слово родительского класса

Ключевое слово родительского класса

Используйте ключевое слово parent, чтобы вызвать метод родительского класса внутри переопределённого метода. Пример:

<?php
  class Vehicle {
    public function start() {
      echo "Starting the vehicle.";
    }
  }

  class Car extends Vehicle {
    public function start() {
      parent::start();
      echo " Starting the car engine.";
    }
  }

  $car = new Car();
  $car->start(); // Outputs: Starting the vehicle. Starting the car engine.
?>

Преимущества наследования

Преимущества наследования

Наследование даёт следующие преимущества:

  • Способствует повторному использованию кода.
  • Создаёт понятную иерархию классов.
  • Обеспечивает полиморфизм, позволяя дочерним классам переопределять методы.

Защищённые члены

Защищённые члены

Наследование также работает с защищёнными членами. Защищённые свойства и методы доступны дочерним классам, но недоступны за пределами иерархии классов. Пример:

Важно: Используйте protected, чтобы безопасно предоставлять общий доступ к членам родительского и дочернего классов.

<?php
  class Vehicle {
    protected $fuel;

    public function setFuel($fuel) {
      $this->fuel = $fuel;
    }
  }

  class Car extends Vehicle {
    public function getFuel() {
      return $this->fuel;
    }
  }

  $car = new Car();
  $car->setFuel("Gasoline");
  echo "Fuel: " . $car->getFuel(); // Outputs: Fuel: Gasoline
?>

Абстрактные классы

Абстрактные классы

Абстрактный класс предоставляет базовую структуру для дочерних классов, но сам не может быть создан как экземпляр. Пример:

Важно: Используйте абстрактные классы, когда хотите обязать дочерние классы реализовать определённые методы.

<?php
  abstract class Vehicle {
    abstract public function start();
  }

  class Car extends Vehicle {
    public function start() {
      echo "Starting the car engine.";
    }
  }

  $car = new Car();
  $car->start(); // Outputs: Starting the car engine.
?>

Ключевое слово для запрета наследования

Ключевое слово для запрета наследования

Ключевое слово final запрещает дальнейшее наследование или переопределение. Пример:

Совет: Используйте final, чтобы защитить методы или классы от расширения.

<?php
  class Vehicle {
    final public function start() {
      echo "Starting the vehicle.";
    }
  }

  class Car extends Vehicle {
    // Cannot override the start method
  }
?>

Отличная работа!

Отличная работа!

Поздравляем! Вы узнали о наследовании в PHP, в том числе о расширении классов, переопределении методов и использовании абстрактных классов. В следующем уроке мы рассмотрим инкапсуляцию и модификаторы доступа. Продолжим писать код!

Наследование — иллюстрация 11

Часто задаваемые вопросы

Урок «Наследование» бесплатный?

Да — полный текст урока «Наследование» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 5 уроков всего.

Чему я научусь в уроке «Наследование»?

Повторно используйте код и расширяйте функциональность с помощью наследования Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 5.

Сколько времени занимает урок «Наследование»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

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

Все уроки этого курса

  1. Введение в ООП в PHP
  2. Определение классов и объектов
  3. Наследование
  4. Инкапсуляция и модификаторы доступа
  5. Полиморфизм
← Назад к PHP Academy