你能在抽象 class 中声明一个私有属性吗?
Can you declare an attribute private within an abstract class?
假设您有一个摘要 class:
abstract class PersonAbstract
{
private $name = "Stack Overflow";
}
在抽象 class 中将属性声明为 private 是否合法?或者这个 class 应该扩展的事实,最低可见度是 protected?
是的,您可以在摘要中有一个私有字段 class。不过,该字段只能由该抽象 class 中的函数访问。任何从您的摘要 class 继承的 classes 将无法访问该字段。
您可以在抽象 class 中将字段和函数声明为 public、受保护或私有。如果字段或函数是 public,则任何人都可以访问它。如果它受到保护,则只有 class 和继承自 class 的任何 class 才可以访问它。如果它是私有的,则只有 class.
可以访问它
抽象函数必须由继承 class 实现,因此拥有私有抽象函数没有意义(而且可能不会起作用)。
假设您有一个摘要 class:
abstract class PersonAbstract
{
private $name = "Stack Overflow";
}
在抽象 class 中将属性声明为 private 是否合法?或者这个 class 应该扩展的事实,最低可见度是 protected?
是的,您可以在摘要中有一个私有字段 class。不过,该字段只能由该抽象 class 中的函数访问。任何从您的摘要 class 继承的 classes 将无法访问该字段。
您可以在抽象 class 中将字段和函数声明为 public、受保护或私有。如果字段或函数是 public,则任何人都可以访问它。如果它受到保护,则只有 class 和继承自 class 的任何 class 才可以访问它。如果它是私有的,则只有 class.
可以访问它抽象函数必须由继承 class 实现,因此拥有私有抽象函数没有意义(而且可能不会起作用)。