PHP 类扩展了覆盖属性和方法


php class extends overwrite propetry and method

考虑以下示例.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