<?php
//接口
interface iVehicle{
// 驱动方式,汽车,新能源
public function setFuel($fule);
// 用途
public function setPurpose($purpose);
}
//Car类实现了接口
//class Car implements iVehicle{
// public $fuel;
// public $purpose;
//// 构造方法
// public function __construct($fuel='汽油',$purpose='家用')
// {
// $this->fuel=$fuel;
// $this->purpose=$purpose;
// }
//// 必须实现接口中的两个方法
// public function setFuel($fule)
// {
// // TODO: Implement setFuel() method.
// $this->fuel=$fule;
// }
// public function setPurpose($purpose)
// {
// // TODO: Implement setFuel() method.
// $this->purpose=$purpose;
// }
//// 在类中,还可以添加属于自己的方法
// public function getInfo(){
// return $this->fuel.' ,'.$this->purpose.'车<br>';
// }
//}
////客户端
//$car=new Car();
//echo $car->getInfo();
//////调用在接口中声明的抽象方法
//$car->setFuel('新能源');
//$car->setPurpose('公交');
//echo $car->getInfo();
//echo $car->getInfo();
//echo '<hr>';
//如果暂时只能实现接口中的部分方法,可以用一个抽象来实现这个接口
//接口中有一些方法,我暂时无法实现?
//接口,用一个抽象类实现部分接口中的方法,剩下的未实现的方法,再由继承抽象类的方法来实现
abstract class Auto implements iVehicle{
public $fuel;
// 只能实现接口中的setFuel方法,另一个方法并未实现
public function setFuel($fule)
{
// TODO: Implement setFuel() method.
$this->fuel=$fule;
}
}
//再创建一个普通类(工作类,可以直接实例化的类),来继承抽象类
class Car1 extends Auto{
public $purpose;
public function __construct($fuel='汽油',$purpose='家用')
{
$this->fuel=$fuel;
$this->purpose=$purpose;
}
public function setPurpose($purpose)
{
// TODO: Implement setFuel() method.
$this->purpose=$purpose;
}
// 在类中,还可以添加属于自己的方法
public function getInfo(){
return $this->fuel.' ,'.$this->purpose.'车<br>';
}
}
//
//$car1=new Car1();
//echo $car1->getInfo();
//////调用在接口中声明的抽象方法
//$car1->setFuel('***气');
//$car1->setPurpose('家用');
//echo $car1->getInfo();
//Car:接口-->工作类-->对象
//Car1:接口-->抽象类-->工作类-->对象