抽象类练习
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. 如果仅是部分实现接口中的方法, 请用一个抽象类来实现它