你能在抽象类中声明一个私有属性吗?

时间:2015-02-16 11:40:44

标签: php oop

假设您有一个抽象类:

abstract class PersonAbstract
{
    private $name = "Stack Overflow";
}

在抽象类中将属性声明为私有是否合法?或者应该扩展此类,最低可见性受保护

1 个答案:

答案 0 :(得分:8)

是的,您可以在抽象类中拥有私有字段。但是,该字段只能被该抽象类中的函数访问。从您的抽象类继承的任何类都将无法访问该字段。

您可以在抽象类中将两个字段和函数声明为public,protected或private。如果某个字段或功能是公开的,任何人都可以访问它。如果它受到保护,则只能访问该类以及从该类继承的任何类。如果它是私有的,则只能访问该类。

抽象函数必须由继承类实现,因此拥有私有抽象函数是没有意义的(并且可能无法工作)。