假设您有一个抽象类:
abstract class PersonAbstract
{
private $name = "Stack Overflow";
}
在抽象类中将属性声明为私有是否合法?或者应该扩展此类,最低可见性受保护?
答案 0 :(得分:8)
是的,您可以在抽象类中拥有私有字段。但是,该字段只能被该抽象类中的函数访问。从您的抽象类继承的任何类都将无法访问该字段。
您可以在抽象类中将两个字段和函数声明为public,protected或private。如果某个字段或功能是公开的,任何人都可以访问它。如果它受到保护,则只能访问该类以及从该类继承的任何类。如果它是私有的,则只能访问该类。
抽象函数必须由继承类实现,因此拥有私有抽象函数是没有意义的(并且可能无法工作)。