久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      PHP面向?qū)ο笾橄箢?lèi)詳解(代碼實(shí)例)

      本文目標(biāo):

      1、了解PHP中抽象類(lèi)的定義

      2、了解PHP中抽象類(lèi)的作用

      3、了解PHP中抽象類(lèi)的使用場(chǎng)景

      4、掌握PHP中抽象類(lèi)的具體實(shí)現(xiàn)

      還是按照之前一貫的思路,我們通過(guò)3W1H的方式進(jìn)行學(xué)習(xí),那么首先我們來(lái)了解一下

      (一)、了解PHP中抽象類(lèi)的定義(What)

      抽象類(lèi)往往用來(lái)表征對(duì)問(wèn)題領(lǐng)域進(jìn)行分析、設(shè)計(jì)中得出的抽象概念,是對(duì)一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。通常在編程語(yǔ)句中用 abstract 修飾的類(lèi)是抽象類(lèi)

      和接口的不同之處在于,接口中的方法都是不實(shí)現(xiàn)的,只是單純的定義,但是抽象類(lèi)中的方法是可以實(shí)現(xiàn)的。

      (二)、了解PHP中抽象類(lèi)的作用(Why)

      在PHP中的類(lèi)當(dāng)中,有很多類(lèi)會(huì)被不斷的重寫(xiě),這個(gè)時(shí)候我們可以使用抽象類(lèi),怎么做呢?就是先寫(xiě)一個(gè)公共的類(lèi),然后實(shí)例化之后我們可以重復(fù)去調(diào)用。這樣可以提高代碼的可重用性

      (三)、了解PHP中抽象類(lèi)的使用場(chǎng)景(Where)

      1、如果發(fā)現(xiàn)代碼中很多類(lèi)都有相似或者共同的方法,我們可以把這些相同或者相似的方法抽離出來(lái),封裝到抽象類(lèi)中。

      抽象類(lèi)和接口有點(diǎn)相似,可以這么說(shuō),接口是一個(gè)特殊的抽象類(lèi),只不過(guò)接口里面全都是抽象的方法,(所謂抽象就是沒(méi)有具體的實(shí)現(xiàn)),但是抽象類(lèi)中的部分方法,是可以具備實(shí)現(xiàn)的功能,

      (四)、掌握PHP中抽象類(lèi)的具體實(shí)現(xiàn)(How)

      總結(jié):

      1、抽象類(lèi)的定義通過(guò)abstract 定義,比如abstract class 類(lèi)名{}

      2、抽象類(lèi)的方法的定義也是通過(guò)abstract定義,比如abstract public function 方法名(){}

      3、抽象類(lèi)是不能被實(shí)例化的

      4、要繼承一個(gè)抽象類(lèi),通過(guò)關(guān)鍵字extends

      5、抽象類(lèi)的子類(lèi)必須要實(shí)現(xiàn)抽象類(lèi)中未實(shí)現(xiàn)的所有方法,也就是說(shuō)要重寫(xiě)抽象類(lèi)中所有abstract的方法

      6、抽象類(lèi)的子類(lèi)雖然沒(méi)有實(shí)現(xiàn)抽象類(lèi)中的已經(jīng)實(shí)現(xiàn)的方法,一樣可以調(diào)用這些方法,其實(shí)結(jié)合繼承我們可以很好理解這點(diǎn)

      每個(gè)總結(jié)都是通過(guò)實(shí)踐得出來(lái)的,現(xiàn)在我們用實(shí)踐來(lái)演示總結(jié),這樣可以促進(jìn)理解,讓每個(gè)總結(jié)理解起來(lái)更加清晰,直觀

      (五)、具體代碼

      案例一、

      實(shí)踐目標(biāo):

      1、抽象類(lèi)的定義通過(guò)abstract 定義,比如abstract class 類(lèi)名{}

      2、抽象類(lèi)的方法的定義也是通過(guò)abstract定義,比如abstract public function 方法名(){}

      具體代碼如下:

      <?php abstract class Animal{     abstract public function eat();//抽象方法     //呼吸     public function breath(){         //所有動(dòng)物的呼吸方法都是一樣的,就不需要使用多態(tài)了         echo "呼吸<br/>";     } } ?>

      案例二、

      實(shí)踐目標(biāo):

      1、抽象類(lèi)是不能被實(shí)例化的

      具體代碼如下:

      <?php abstract class Animal{     abstract public function eat();//抽象方法     //呼吸     public function breath(){         //所有動(dòng)物的呼吸方法都是一樣的,就不需要使用多態(tài)了         echo "呼吸<br/>";     } } $animal = new Animal(); ?>

      運(yùn)行結(jié)果為:

      Fatal error: Uncaught Error: Cannot instantiate abstract class Animal in D:E-classclass-codeclassingindex.php:10 Stack trace: #0 {main} thrown in D:E-classclass-codeclassingindex.php on line 10

      案例四、

      實(shí)踐目標(biāo):

      1、要繼承一個(gè)抽象類(lèi),通過(guò)關(guān)鍵字extends

      2、抽象類(lèi)的子類(lèi)必須要實(shí)現(xiàn)抽象類(lèi)中未實(shí)現(xiàn)的所有方法,也就是說(shuō)要重寫(xiě)抽象類(lèi)中所有abstract的方法

      具體代碼如下:

      <?php abstract class Animal{     abstract public function eat();//抽象方法     //呼吸     public function breath(){         //所有動(dòng)物的呼吸方法都是一樣的,就不需要使用多態(tài)了         echo "呼吸<br/>";     } } //定義猴子 class Monkey extends Animal{      } ?>

      如果Monkey類(lèi)繼承了抽象類(lèi),但不實(shí)現(xiàn)里面的abstract方法,那么運(yùn)行結(jié)果為:

      Fatal error: Class Monkey contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Animal::eat) in D:E-classclass-codeclassingindex.php on line 13

      接下來(lái)我們來(lái)實(shí)現(xiàn)abstract方法

      具體代碼如下:

      <?php abstract class Animal{     abstract public function eat();//抽象方法     //呼吸     public function breath(){         //所有動(dòng)物的呼吸方法都是一樣的,就不需要使用多態(tài)了         echo "呼吸<br/>";     } } //定義猴子 class Monkey extends Animal{     //實(shí)現(xiàn)抽象類(lèi)中的抽象方法     public function eat(){         echo "我是猴子類(lèi)中的eat方法<br/>";     } } $monkey = new Monkey(); $monkey->eat();  ?>

      運(yùn)行結(jié)果如下:

      我是猴子類(lèi)中的eat方法

      案例五、

      實(shí)踐目標(biāo):

      1、抽象類(lèi)的子類(lèi)雖然沒(méi)有實(shí)現(xiàn)抽象類(lèi)中的已經(jīng)實(shí)現(xiàn)的方法,一樣可以調(diào)用這些方法,其實(shí)結(jié)合繼承我們可以很好理解這點(diǎn)

      具體代碼如下:

      <?php abstract class Animal{     abstract public function eat();//抽象方法     //呼吸     public function breath(){         //所有動(dòng)物的呼吸方法都是一樣的,就不需要使用多態(tài)了         echo "抽象類(lèi)中的呼吸方法<br/>";     } } //定義猴子 class Monkey extends Animal{     //實(shí)現(xiàn)抽象類(lèi)中的抽象方法     public function eat(){         echo "我是猴子類(lèi)中的eat<br/>";     } } $monkey = new Monkey(); $monkey->eat(); $monkey->breath(); ?>

      運(yùn)行結(jié)果如下:

      我是猴子類(lèi)中的eat
      抽象類(lèi)中的呼吸方法

      (六)、學(xué)以致用

      問(wèn)題:將以下真實(shí)場(chǎng)景,用抽象類(lèi)還原出來(lái)

      小芳放學(xué)回到家中,一進(jìn)家門(mén),只見(jiàn)心愛(ài)的小狗“小愛(ài)”馬上就對(duì)主人搖起了尾巴,小芳笑了笑,走過(guò)去,抱起了小狗,最后,小芳和小狗親了一口

      思路分析:

      1、對(duì)象分析:學(xué)生,小狗

      2、對(duì)象屬性分析:結(jié)合(現(xiàn)實(shí)世界+具體場(chǎng)景)

      學(xué)生:名稱(chēng)

      狗:名稱(chēng)

      3、對(duì)象方法分析:結(jié)合(現(xiàn)實(shí)世界+具體場(chǎng)景)

      學(xué)生:

      (1)、放學(xué)

      (2)、回到家中

      (3)、走路

      (4)、看

      (5)、笑

      (6)、抱東西

      (7)、親嘴

      狗:

      (1)、看

      (2)、搖尾巴

      (3)、親嘴

      4、我們發(fā)現(xiàn)這2個(gè)對(duì)象都有相似的方法,看,親嘴,所以我們可以把它們封裝到抽象類(lèi)中,并且這2個(gè)方法不需要子類(lèi)去重寫(xiě),因?yàn)槎际且粯拥?/p>

      具體代碼如下:

      <?php abstract class Animal{     //看     public function look($obj){         //所有動(dòng)物的呼吸方法都是一樣的,就不需要使用多態(tài)了         echo "看見(jiàn)了".$obj->name."<br/>";     }     //親嘴     public function kiss($fromobj,$toobj){         echo $fromobj->name."親了".$toobj->name."一口<br/>";     }      } //學(xué)生 class Student extends Animal{    public $name = "";    public function __construct( $name ){        $this->name = $name;    }     // 1、放學(xué)    public function offschool(){        echo $this->name."放學(xué)了<br/>";    }    //回家    public function goHome(){     echo $this->name."回到家中<br/>";    }     // 2、走路     public function walk(){         echo $this->name."走了過(guò)去<br/>";     }     // 3、看      // 4、笑     public function smile(){         echo $this->name."微笑了<br/>";     }     // 5、抱東西     public function hug($obj){         echo $this->name."抱起了".$obj->name."<br/>";     }     // 6、親嘴     } //狗 class Dog extends Animal{    public $name = "";    public function __construct( $name ){        $this->name = $name;    }     //1、看      //2、搖尾巴     public function wagTail(){         echo $this->name."搖了尾巴<br/>";     }      //3、親嘴 } //創(chuàng)建對(duì)象 $xf = new Student("小芳"); $dog = new Dog("小愛(ài)"); //小芳放學(xué)了 $xf->offschool(); //小芳放學(xué)回到家中,一進(jìn)家門(mén),只見(jiàn)心愛(ài)的小狗“小愛(ài)”馬上就對(duì)主人搖起了尾巴,小芳笑了笑,走過(guò)去, //抱起了小狗,最后,小芳和小狗親了一口 //小芳回答家中 $xf->goHome(); //小芳看見(jiàn)小狗 $xf->look($dog); //小狗搖尾巴 $dog->wagTail(); //小芳笑了笑 $xf->smile(); //小芳走過(guò)去 $xf->walk(); //抱起小狗 $xf->hug($dog); //小芳親了小狗 $xf->kiss($xf,$dog); //小狗也親了小芳 $dog->kiss($dog,$xf); ?>

      運(yùn)行結(jié)果為:

      小芳放學(xué)了
      小芳回到家中
      看見(jiàn)了小愛(ài)
      小愛(ài)搖了尾巴
      小芳微笑了
      小芳走了過(guò)去
      小芳抱起了小愛(ài)
      小芳親了小愛(ài)一口
      小愛(ài)親了小芳一口

      (七)、總結(jié)

      1、本文主要講解了PHP中抽象類(lèi)的定義,作用以及具體的實(shí)現(xiàn)

      希望本文能給大家?guī)?lái)一定的幫助,謝謝!??!

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)