php – 如何在子类中设置公共属性?
发布时间:2020-12-13 17:38:20 所属栏目:PHP教程 来源:网络整理
导读:我是OO编程的新手,我正在尝试理解如何以适当的方式从子类为公共属性赋值.我总是每次都以不同的方式做这件事,所以我觉得问你一般的做法是个好主意. 假设我有一个父类,Fruit和两个子类Apple和Banana. ???? abstract class Fruit { protected $color; //empty p
我是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将它们传递给父类,以将值赋给父类中的属性. 我想最好收集父类中的公共属性,但是编写那么多行来设置一些值感觉有点过分(如果我有很多属性,那么会有很多功能参数以及).第二和第三部分,但很难看出我实际上需要定义属性. 我该怎么想?哈哈,我对所有OO思维方式都很困惑,我几乎没有编写任何代码. 谢谢. 解决方法
没有“银弹”.通常,应该通过构造函数的参数设置预期在子类中不同的所有字段,以确保它们是显式设置的.可以通过为属性赋值来初始化其他字段.
例如,可以通过为属性赋值来设置水果的颜色(因为许多水果可以是红色),但名称应该由构造函数的参数设置(因为名称唯一标识水果). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |