抽象類別與介面
在php中可以透過(guò)abstract關(guān)鍵字宣告抽象類別,有時(shí)候我們需要一個(gè)類別必須具備某些公共的方法,此時(shí)就可使用介面技術(shù)
#1,建立一個(gè)animal類別
#Animal.class.php程式碼如下:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 下午 2:13 */ abstract class Animal{ public $gender; //性別 public $size; //尺寸 public function __construct($gender,$size){ $this->gender=$gender; $this->size=$size; } //限制非抽象類都需要調(diào)用此方法 abstract protected function getGender(); //final要求每個(gè)子類必須存在該方法并且不能重寫(xiě) final public function getSize(){ return $this->size; } }
2,建立一個(gè)dog類別
Dog.class.php程式碼如下:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 下午 2:20 */ header('content-type:text/html;charset=utf8'); require './Animal.class.php'; class Dog extends Animal { /** * @return mixed */ public function getGender() { return "'$this->gender'狗"; } } $dog=new Dog('公','大'); echo $dog->getSize(); echo $dog->getGender();
運(yùn)行結(jié)果如下:
#3,建立一個(gè)cat類別
Cat.class.php程式碼如下:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 下午 2:22 */ header('content-type:text/html;charset=utf8'); require './Animal.class.php'; class Cat extends Animal { public function getGender() { return "'$this->gender'貓"; } } $dog=new Cat('母','小'); echo $dog->getSize(); echo $dog->getGender();
#運(yùn)行結(jié)果如下:
4,介面類別的呼叫
建立interpace.php檔,程式碼如下:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 下午 2:34 */ header('content-type:text/html;charset=utf8'); //定義usb接口 interface usb{ public function connect(); //連接 public function transfer(); //傳輸 public function disconnect(); //斷開(kāi) } class mp3 implements usb{ public function connect() { // TODO: Implement connect() method. echo "連接...<br>"; } public function transfer() { // TODO: Implement transfer() method. echo "傳輸...<br>"; } public function disconnect() { // TODO: Implement disconnect() method. echo "斷開(kāi)...<br>"; } } $mp3=new mp3(); $mp3->connect(); $mp3->transfer(); $mp3->disconnect();
運(yùn)行結(jié)果: