Correcting teacher:查无此人
Correction status:qualified
Teacher's comments:完成的不错,继续加油。
abstract class a{ protected $name; protected $age; abstract protected function getInfo(); abstract protected function setInfo($name,$age);}class b extends a{ public function getInfo() { return $this->name.$this->age; } public function setInfo ($name,$age){ $this->name=$name; $this->age=$age; }}$b = new b;$b->setInfo('杨过',18);echo $b->getInfo();
interface iVehicle{ public function setFuel($fuel); public function setLevel($level);}class Car implements iVehicle{ public $fuel; public $level; public function setFuel($fuel) { return $this->fuel=$fuel; } public function setLevel($level) { return $this->level=$level; } public function getCarInfo(){ return '燃油类型:'.$this->fuel.' 汽车级别:'.$this->level; }}$car =new Car;$car->setFuel('#98');$car->setLevel('A1');echo $car ->getCarInfo();
1. 抽象类都不能被实例化,必须通过子类继承的方式来访问,并且子类必须实现抽象类的所有abstract
方法,类中只要有一个抽象方法,该类就应该被声明为抽象类,实现抽象类的子类可见方法性不能低于抽象类原方法的定义
抽象方法是public, 子类方法只能是public 抽象方法是protected, 子类方法只能是protected/public
2. 一个抽象类必须被扩展为一个特定的类,我们才能创建类实例,使用类中功能
3. 在实际开发过程中, 通常并不会直接使用一个父类/超类,而是在父类中定义一些方法声明
4. 并且确信这个方法肯定是会被子类重写的, 父类中没必要实现,只要给一个方法编写规范即可
5. 这个规范包括方法的名称, 参数列表等,具体实现就完全交给子类去完成了
6. 相当于公司的部门主管, 接受到老板的任务, 只把属于自己的部分做了, 其它部分, 设置一个标准交给下属去完成
1. 接口是指定某个类必须实现的方法,但不需要定义方法的具体实现过程
2. 接口中仅允许出现: 方法与类常量
3. 接口的方法可见性必须是: public
4. 接口的方法体必须是空的
5. implements
类实现接口的关键字
6. 如果仅是部分实现接口中的方法, 请用一个抽象类来实现它