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

Hyd*_* B. 6 php oop

假设你有一个抽象类:

abstract class PersonAbstract
{
    private $name = "Stack Overflow";
}
Run Code Online (Sandbox Code Playgroud)

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

stw*_*ter 8

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

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

抽象函数必须由继承类实现,因此拥有私有抽象函数是没有意义的(也可能不起作用).