PHP OOP问题

是否可能要求PHP 5.3中的对象包含某些常量或属性?我对PHP的接口模型有所了解,看来它仅适用于抽象的公共方法,所以没错.因此,我要问的是是否有一种方法可以拥有两个对象A和对象B.如果对象B要扩展对象A,则它必须包含特定的常量或变量.您将如何设计这种类型的架构?谢谢.

解决方法:

http://php.net/manual/en/language.oop5.interfaces.php#language.oop5.interfaces.constants

Its possible for interfaces to have constants. Interface constants works exactly like class constants except they cannot be overridden by a class/interface that inherits it.

接口常量不能被继承的类覆盖.类常量可以被覆盖,但不是必需的(即使在抽象类中声明).设计抽象类是为了强制接口,而不是实现.常量属于实现,而方法定义接口.因此,尽管可以在抽象类中使用默认值声明常量,但由孩子决定是否使用或重新定义它们.

最好的选择是使用“ getter”方法,例如:

abstract class MyAbstract
{
    abstract public function getPropertyA();
    abstract public function getPropertyB();
}

现在,将需要使用扩展MyAbstract的任何类来定义getPropertyA()和getPropertyB(),以确保可以始终访问这些值.

上一篇:python:表示环绕自身的方形网格(圆柱体)


下一篇:javascript-扩展Aloha Editor的格式插件