【发布时间】:2013-07-23 17:57:38
【问题描述】:
我正在尝试理解类继承。
假设我有以下代码(PHP):
class A {
public function fire() {
echo "Fire!";
}
}
class B extends A {
public function water() {
echo "Water!";
}
}
class C extends B {
public function lightning() {
echo "Lightning!";
}
}
$cObject = new C();
$cObject->fire();
我的问题是
- 即使在 C 类和 B 类中都没有定义 fire() 方法,$cObject->fire() 仍然有效。 C 类是否不仅继承了 B 类的方法,还继承了 A 类的方法?我试图找出深度继承将进行多少级。
- 是否存在调用当前对象实例中不存在但该属性或方法存在于父类或祖先类中的属性或方法的术语?编辑:换句话说,C 类中没有定义 fire(),但 $cObject 仍然可以调用 fire()。这个概念有什么特别的术语/行话吗? (或者它只是“类继承”定义的一部分)
【问题讨论】:
标签: php class oop inheritance