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

时间:2015-01-08 13:46:28

标签: php class oop

考虑以下示例。 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";
}
}

3 个答案:

答案 0 :(得分:1)

是的,是的。

扩展课程后,您可以更改默认值。

有关详细信息,请参阅PHP: Visibility

答案 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