Существуют ли чистые виртуальные функции в PHP, например, с С++
Я бы подумал, что многие люди задавались вопросом, возможно ли это, но я не могу найти никаких повторяющихся вопросов... поправьте меня.
Я просто хочу знать, предлагает ли PHP чистые виртуальные функции. Я хочу следующее
class Parent {
// no implementation given
public function foo() {
// nothing
}
}
class Child extends Parent {
public function foo() {
// implementation of foo goes here
}
}
Большое спасибо.
Ответы
Ответ 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
Да, этот тип решения возможен, он называется полиморфизмом, вы можете сделать это без объявления абстрактного класса или интерфейса.