问题
I would have thought lots of people would have wondered whether this is possible but I can't find any duplicate questions... do correct me.
I just want to know whether PHP offers pure virtual functions. I want the following
class Parent {
// no implementation given
public function foo() {
// nothing
}
}
class Child extends Parent {
public function foo() {
// implementation of foo goes here
}
}
Thanks very much.
回答1:
You can create abstract functions, but you need to declare the parent class as abstract, too:
abstract class Parent {
// no implementation given
abstract public function foo();
}
class Child extends Parent {
public function foo() {
// implementation of foo goes here
}
}
回答2:
Declare the method as abstract in the Parent class:
abstract public function foo();
回答3:
There are abstract classes!
abstract class Parent {
// no implementation given
abstract public function foo();
}
}
class Child extends Parent {
public function foo() {
// implementation of foo goes here
}
}
回答4:
Yes, that type of solution is possible, it's called polymorphism, you can do it without declaring an abstract class or an interface.
来源:https://stackoverflow.com/questions/7600771/are-there-pure-virtual-functions-in-php-like-with-c