Подтвердить что ты не робот

Существуют ли чистые виртуальные функции в PHP, например, с С++

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

Я просто хочу знать, предлагает ли PHP чистые виртуальные функции. Я хочу следующее

class Parent {
   // no implementation given
   public function foo() {
      // nothing 
   }
}

class Child extends Parent {
   public function foo() {
      // implementation of foo goes here
   }
}

Большое спасибо.

4b9b3361

Ответ 1

Вы можете создавать абстрактные функции, но вам также нужно объявить родительский класс как абстрактный:

abstract class Parent {
   // no implementation given
   abstract public function foo();
}

class Child extends Parent {
   public function foo() {
      // implementation of foo goes here
   }
}

Ответ 2

Объявить метод абстрактным в классе родителя:

abstract public function foo();

Ответ 3

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

abstract class Parent {
   // no implementation given
   abstract public function foo();
   }
}

class Child extends Parent {
   public function foo() {
      // implementation of foo goes here
   }
}

Ответ 4

Да, этот тип решения возможен, он называется полиморфизмом, вы можете сделать это без объявления абстрактного класса или интерфейса.