Есть ли в PHP чисто виртуальные функции, как в C ++? - PullRequest
13 голосов
/ 29 сентября 2011

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

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

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

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

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

Ответы [ 4 ]

17 голосов
/ 29 сентября 2011

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

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

class Child extends Parent {
   public function foo() {
      // implementation of foo goes here
   }
}
4 голосов
/ 29 сентября 2011

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

abstract public function foo();
3 голосов
/ 29 сентября 2011

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

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

class Child extends Parent {
   public function foo() {
      // implementation of foo goes here
   }
}
1 голос
/ 29 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...