考虑以下示例.class b 正在扩展类 a。
1)当类b扩展类a时,它会覆盖属性a值吗?
2)当B类扩展A类时,它会覆盖方法吗?
class a {
public $a = 5;
function say() {
echo "Hi";
}
}
class b extends a {
public $a = 6;
function say() {
echo "Hi";
}
}
是的,是的。
扩展类后,您可以更改默认值。
有关详细信息,请参阅 PHP:可见性。
两者都是。在属性情况下,它将覆盖它的默认值。
对一切都是的。
面向对象编程具有继承性,如果子编程重新声明/重新定义方法或属性,则父编程将被更改。子类通常用于提供更具体的功能,而父类用于常规功能。
如果您希望保留父项,则可以使用以下内容。
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