2

请参阅以下对象:

interface IMedia
{
    public function getThemed();
    public function getDownloadLink();
}

class Video implements IMedia
{
    public function getThemed() {}
    public function getDownloadLink() {}
}

如果有一些常见的属性,例如:

public $size;
public $uploadedDate;
public $hitCounts;

它们可以添加到 IMedia 吗?还是建议在那个地方使用抽象类?

4

2 回答 2

3

@Muneer

首先这是不可能的。接口不允许这样做。我建议做这样的事情:

interface IMedia {

}

abstract class AbstractMedia implements IMedia {
  public $property = "value";
}
于 2012-06-13T06:16:58.303 回答
0

好吧,总的来说,您当然希望尽可能抽象。因此,为了避免仅针对访问器/突变器的类型转换,访问器/突变器完全有意义。现在将有机会引入一个仅用于属性实现的抽象类。

于 2012-06-13T06:15:07.093 回答