我是OO编程的新手,我正在尝试理解如何以适当的方式从子类为公共属性赋值.我总是每次都以不同的方式做这件事,所以我觉得问你一般的做法是个好主意.
假设我有一个父类,Fruit和两个子类Apple和Banana.
abstract class Fruit {
protected $color; //empty property
protected function getColor(){
return $this->color;
}
}
class Apple extends Fruit {
protected $color = 'red';
}
class Banana extends Fruit {
protected $color = 'yellow';
}
?>
每个子类必须具有属性颜色,例如,超类中的函数getColor将使用它.
但是我该如何处理该物业?
>我在父级中定义空变量$color.然后我在子类中设置变量$color,并通过parent :: __ construct将它们传递给父类,以将值赋给父类中的属性.
>我在父级中定义空变量$color.然后我只需在子类中使用$this-> color来设置值.
>我在每个子类中定义属性,并保持原样.继承的方法仍然可以使用它.
我想最好收集父类中的公共属性,但是编写那么多行来设置一些值感觉有点过分(如果我有很多属性,那么会有很多功能参数以及).第二和第三部分,但很难看出我实际上需要定义属性.
我该怎么想?哈哈,我对所有OO思维方式都很困惑,我几乎没有编写任何代码.
谢谢.