考虑以下示例。 b级正在扩展a类。
1)当类b扩展类a时,它会覆盖属性值吗?
2)当b类扩展a类时,它会覆盖方法吗?
class a {
public $a = 5;
function say() {
echo "Hi";
}
}
class b extends a {
public $a = 6;
function say() {
echo "Hi";
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
两者都是。在属性的情况下,它将覆盖它的默认值。
答案 2 :(得分:0)
对所有事情都是。
面向对象编程具有继承性,如果子项重新声明/重新定义方法或属性,则将更改父项。子类通常用于提供更具体的功能,而父类用于一般功能。
如果你想保留父母,那么以下方法就可以了。
class A {
public $a = 5;
function say() {
echo 'Hi';
}
}
class C extends A {
/* specific functionality here */
}
相关的官方文件在这里:http://php.net/manual/en/language.oop5.inheritance.php