我试图理解类继承。
假设我有以下代码(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()。这个概念有什么特别的术语/行话吗?(或者它只是“类继承”定义的一部分)