面向對象的抽象類、接口、多態

抽象類:含有抽象方法的類。(父類指定給後代作的一些事[父親沒有完成的])php

接口:只含有抽象方法的類。函數

多態:一個函數能夠使用多個類。(經過一個函數去加工多個不一樣的類對象)this

 

抽象類例子以下:(注:抽象方法沒有方法體,並且抽象類裏面也能夠有其餘的普通方法。後代只要完成父輩指定的未完成的抽象方法便可,只有子類完成才能夠實例父類的其餘的普通方法。)spa

<?php
abstract class usb{
    abstract function star();
    abstract function play();
    abstract function stop();
    function useusb(){
        $this->star();
        $this->play();
        $this->stop();
    }
}
class uspan extends usb{
    function star() {
        echo "準備識別USB<br>";
    }
    function play() {
        echo "正在識別USB<br>";
    }
    function stop() {
        echo"識別完畢USB<br>";
    }
}
$chouxiang=new uspan();
$chouxiang->useusb();
?>對象

 

接口例子以下:(注意:後輩必需要完成父類指定的抽象方法,接口裏面不能有其餘的普通方法。後輩類裏面能夠有其餘的普通方法。)接口

<?php
 interface usb{
     function star();
     function play();
     function stop();
     function useusb();
}io

//implements是必須實現(是父類給子類必需要實現的任務)
class uspan implements usb{
    function star() {
        echo "準備識別USB<br>";
    }
    function play() {
        echo "正在識別USB<br>";
    }
    function stop() {
        echo"識別完畢USB<br>";
    }
    function useusb(){
        $this->star();
        $this->play();
        $this->stop();
    }
}
$chouxiang=new uspan();
$chouxiang->useusb();
?>function

 

多態的示例以下:()class

<?php
interface usb{
    function star();
    function run();
    function stop();
}
class upan implements usb{
    function star(){
        echo "準備識別Upan設備<br>";
    }
    function run(){
        echo "正在識別Upan設備<br>";
    }
    function stop(){
        echo "中止識別Upan設備<br>";
    }
}
class udisk implements usb{
    function star(){
    echo "<style:margin-top:20px>準備識別Udisk設備<br>";
    }
    function run(){
        echo "正在識別Udisk設備<br>";
    }
    function stop() {
        echo"中止識別Udisk設備<br>";
    }
    }
  function useusb(usb $obj){
        $obj->star();
        $obj->run();
        $obj->stop();
    }
    $upan_1=new upan();
    $udisk_1=new udisk();
    useusb($upan_1);
    useusb($udisk_1);方法

?>   

相關文章
相關標籤/搜索