Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON PHP КАК
     ❯   

PHP Учебник


PHP Формы


PHP Продвинутый


PHP ООП


MySQL База данных


PHP XML


PHP - AJAX


PHP Примеры


PHP Справочник



PHP ООП - Интерфейсы



Интерфейсы PHP

Интерфейс позволяет определить, какие публичные методы класс ДОЛЖЕН реализовать, без определения того, как они должны быть реализованы.

Интерфейсы объявляются с помощью ключевого слова interface, и методы, объявленные в интерфейсе, должны быть public:

interface ИмяИнтерфейса {
  public function метод1();
  public function метод2();
}

Чтобы реализовать интерфейс, класс должен использовать ключевое слово implements.

Класс, который реализует интерфейс, должен реализовать все методы интерфейса.

class ИмяКласса implements ИмяИнтерфейса {
  public function метод1() { 
    // некоторый код
  } 
  public function метод2(){ 
    // некоторый код
  } 
}

Следующий пример определяет интерфейс с именем Animal с одним публичным методом (makeSound()). Классы Cat и Dog реализуют интерфейс Animal, и оба должны включать метод makeSound():

Пример

<?php
// Определяем интерфейс
interface Animal {
  public function makeSound();
}

// Реализуем интерфейс в классе
class Cat implements Animal {
  public function makeSound() {
    echo "Мяу";
  }
}

// Реализуем интерфейс в другом классе
class Dog implements Animal {
  public function makeSound() {
    echo "Гав";
  }
}

$cat = new Cat();
$cat->makeSound();

$dog = new Dog();
$dog->makeSound();
?>
Попробуйте сами »


PHP - Интерфейсы против абстрактных классов

Интерфейсы похожи на абстрактные классы. Различия между интерфейсами и абстрактными классами:

  • Интерфейсы не могут иметь свойств, в то время как абстрактные классы могут
  • Все методы интерфейса должны быть публичными, в то время как абстрактные методы могут быть публичными или защищенными
  • Все методы в интерфейсе являются абстрактными, поэтому они не могут быть реализованы в коде, и ключевое слово abstract не требуется
  • Классы могут реализовывать интерфейс и одновременно наследоваться от другого класса

Интерфейсы позволяют легко использовать различные классы одинаковым образом. Когда один или несколько классов используют один и тот же интерфейс, это называется "полиморфизмом".


PHP - Использование интерфейсов

Следующий пример определяет интерфейс с именем Animal с двумя публичными методами (fromFamily() и makeSound()). Классы Cat и Dog реализуют интерфейс Animal и должны включать оба метода: fromFamily() и makeSound():

Пример

<?php
interface Animal {
  public function fromFamily();
  public function makeSound();
}

class Cat implements Animal {
  public function fromFamily() {
    echo "Из семейства: Кошачьи (родственники: львы, тигры, ягуары, рыси, пумы и гепарды).<br>";
  }
  public function makeSound() {
    echo "Звук: Мяу.";
  }
}

class Dog implements Animal {
  public function fromFamily() {
    echo "Из семейства: Псовые (родственники: волки, лисы, койоты, шакалы и домашние собаки).<br>";
  }
  public function makeSound() {
    echo "Звук: Гав.";
  }
}

echo "<h3>Кошки</h3>";
$cat = new Cat();
$cat->fromFamily();
$cat->makeSound();

echo "<h3>Собаки</h3>";
$dog = new Dog();
$dog->fromFamily();
$dog->makeSound();
?>
Попробуйте сами »


×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

Schoolsw3 оптимизирован для обучения и подготовки. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно проверяются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего контента.
При использовании Schoolsw3 вы соглашаетесь прочитать и принять наши условия использования,
политику использования файлов cookie и конфиденциальности.

Авторское право 1999- © Copyright. Все права защищены. Schoolsw3 работает на SW3.CSS.