gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

PHP面向對象之抽象類詳解(代碼實例)

本文目標:

1、了解PHP中抽象類的定義

2、了解PHP中抽象類的作用

3、了解PHP中抽象類的使用場景

4、掌握PHP中抽象類的具體實現

還是按照之前一貫的思路,我們通過3W1H的方式進行學習,那么首先我們來了解一下

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

抽象類往往用來表征對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。通常在編程語句中用 abstract 修飾的類是抽象類

和接口的不同之處在于,接口中的方法都是不實現的,只是單純的定義,但是抽象類中的方法是可以實現的。

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

在PHP中的類當中,有很多類會被不斷的重寫,這個時候我們可以使用抽象類,怎么做呢?就是先寫一個公共的類,然后實例化之后我們可以重復去調用。這樣可以提高代碼的可重用性

(三)、了解PHP中抽象類的使用場景(Where)

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

抽象類和接口有點相似,可以這么說,接口是一個特殊的抽象類,只不過接口里面全都是抽象的方法,(所謂抽象就是沒有具體的實現),但是抽象類中的部分方法,是可以具備實現的功能,

(四)、掌握PHP中抽象類的具體實現(How)

總結:

1、抽象類的定義通過abstract 定義,比如abstract class 類名{}

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

3、抽象類是不能被實例化的

4、要繼承一個抽象類,通過關鍵字extends

5、抽象類的子類必須要實現抽象類中未實現的所有方法,也就是說要重寫抽象類中所有abstract的方法

6、抽象類的子類雖然沒有實現抽象類中的已經實現的方法,一樣可以調用這些方法,其實結合繼承我們可以很好理解這點

每個總結都是通過實踐得出來的,現在我們用實踐來演示總結,這樣可以促進理解,讓每個總結理解起來更加清晰,直觀

(五)、具體代碼

案例一、

實踐目標:

1、抽象類的定義通過abstract 定義,比如abstract class 類名{}

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

具體代碼如下:

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

案例二、

實踐目標:

1、抽象類是不能被實例化的

具體代碼如下:

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

運行結果為:

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

案例四、

實踐目標:

1、要繼承一個抽象類,通過關鍵字extends

2、抽象類的子類必須要實現抽象類中未實現的所有方法,也就是說要重寫抽象類中所有abstract的方法

具體代碼如下:

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

如果Monkey類繼承了抽象類,但不實現里面的abstract方法,那么運行結果為:

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

接下來我們來實現abstract方法

具體代碼如下:

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

運行結果如下:

我是猴子類中的eat方法

案例五、

實踐目標:

1、抽象類的子類雖然沒有實現抽象類中的已經實現的方法,一樣可以調用這些方法,其實結合繼承我們可以很好理解這點

具體代碼如下:

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

運行結果如下:

我是猴子類中的eat
抽象類中的呼吸方法

(六)、學以致用

問題:將以下真實場景,用抽象類還原出來

小芳放學回到家中,一進家門,只見心愛的小狗“小愛”馬上就對主人搖起了尾巴,小芳笑了笑,走過去,抱起了小狗,最后,小芳和小狗親了一口

思路分析:

1、對象分析:學生,小狗

2、對象屬性分析:結合(現實世界+具體場景)

學生:名稱

狗:名稱

3、對象方法分析:結合(現實世界+具體場景)

學生:

(1)、放學

(2)、回到家中

(3)、走路

(4)、看

(5)、笑

(6)、抱東西

(7)、親嘴

狗:

(1)、看

(2)、搖尾巴

(3)、親嘴

4、我們發(fā)現這2個對象都有相似的方法,看,親嘴,所以我們可以把它們封裝到抽象類中,并且這2個方法不需要子類去重寫,因為都是一樣的

具體代碼如下:

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

運行結果為:

小芳放學了
小芳回到家中
看見了小愛
小愛搖了尾巴
小芳微笑了
小芳走了過去
小芳抱起了小愛
小芳親了小愛一口
小愛親了小芳一口

(七)、總結

1、本文主要講解了PHP中抽象類的定義,作用以及具體的實現

希望本文能給大家?guī)硪欢ǖ膸椭x謝!!!

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
www国产无套内射com| r级无码视频在线观看| jizz大全欧美jizzcom| 亚洲第一中文av| 中文字幕成人在线视频| 五月天男人天堂| 男女日批视频在线观看| 91视频最新入口| 日本中文字幕观看| 国产精品国三级国产av| 免费一级特黄特色毛片久久看| 欧美日韩黄色一级片| 久久综合伊人77777麻豆最新章节| 又色又爽又黄视频| 波多野结衣与黑人| 国产福利一区视频| 久久国产精品免费观看| 成人在线观看a| 欧洲美女和动交zoz0z| 成人亚洲视频在线观看| 天天做天天爱天天高潮| 最近免费中文字幕中文高清百度| 三级黄色片免费观看| 99精品视频在线看| 经典三级在线视频| 天天干天天爽天天射| 日本免费a视频| 国产亚洲视频一区| 欧美精品第三页| 青草青青在线视频 | 欧美色图色综合| 免费不卡av网站| 国产高清视频网站| 久草视频国产在线| 国产精品88久久久久久妇女| 日韩欧美在线免费观看视频| av女优在线播放| 日韩精品一区二区三区电影| 麻豆三级在线观看| 97xxxxx| 奇米影视亚洲色图| 51xx午夜影福利| 超碰在线免费观看97| 超碰在线播放91| 一级特黄性色生活片| 国产精品免费入口| 精品久久一二三| 亚洲国产成人精品无码区99| 日韩成人午夜影院| 91香蕉视频网址| 国产精品波多野结衣| 一二三级黄色片| 99中文字幕在线| 999这里有精品| 亚洲怡红院在线| 黄色小视频免费网站| 国产又大又黄又粗又爽| 亚洲成人av免费看| 久久人人爽av| 特级黄色片视频| 熟女视频一区二区三区| 人人妻人人澡人人爽精品欧美一区| 久久人人爽av| 成年人三级视频| 日韩精品一区二区三区四| 大荫蒂性生交片| 欧美 丝袜 自拍 制服 另类 | 三上悠亚在线一区二区| 99re精彩视频| 日本一级淫片演员| 国产在线观看欧美| 国产精品网站免费| 不卡av免费在线| 免费看av软件| 成熟了的熟妇毛茸茸| 日韩亚洲在线视频| 在线观看免费不卡av| 一级黄色片播放| 91九色在线观看视频| 992kp快乐看片永久免费网址| 午夜dv内射一区二区| 吴梦梦av在线| 欧美丰满熟妇bbbbbb百度| 手机在线免费观看毛片| 国产精品12p| 无码人妻丰满熟妇区96| 第一区免费在线观看| www婷婷av久久久影片| 日韩中文字幕免费在线| 色黄视频免费看| 少妇高潮喷水久久久久久久久久| 深夜黄色小视频| 日本xxxxxxxxxx75| 成年网站免费在线观看| 国产黄色片免费在线观看| 国产喷水theporn| 人妻av中文系列| 国内av一区二区| 少妇人妻互换不带套| japanese在线播放| 亚州精品一二三区| 精品视频在线观看一区| av中文字幕网址| 国产精品99久久免费黑人人妻| 国产精品99久久久久久大便| 亚洲成熟丰满熟妇高潮xxxxx| 艳母动漫在线观看| 亚洲一区日韩精品| 欧在线一二三四区| 成人性生活视频免费看| 久久久久久综合网| 天天操天天爱天天爽| 女人和拘做爰正片视频| 91嫩草国产丨精品入口麻豆| 99sesese| 九热视频在线观看| 红桃av在线播放| 日本欧美黄色片| 欧美精品在欧美一区二区| 免费精品99久久国产综合精品应用| 男人天堂999| 国产精品一区二区免费在线观看| 欧美另类videos| a级黄色片网站| 涩多多在线观看| 国产一级免费大片| 亚洲免费成人在线视频| 激情五月俺来也| 日本黄大片一区二区三区| 久草福利视频在线| 毛葺葺老太做受视频| 久久久久免费精品| 天天影视综合色| 欧美性猛交久久久乱大交小说 | 国产乱子伦精品无码专区| 麻豆映画在线观看| 成年丰满熟妇午夜免费视频| 99re99热| 国产a级黄色大片| 91嫩草国产丨精品入口麻豆| 久久国产精品免费观看| av在线免费观看国产| 国产精品又粗又长| 久久久亚洲精品无码| 久久久噜噜噜www成人网| 国产精品免费观看久久| 亚洲77777| 在线a免费观看| 国产xxxx振车| 成年人视频在线免费| 亚洲怡红院在线| 欧美少妇在线观看| 国产成人在线免费看| 91色国产在线| 国产不卡的av| 日本丰满少妇xxxx| 国产一二三区av| 久久久久久久香蕉| 国模吧无码一区二区三区| 自拍偷拍21p| 欧美国产视频一区| 日韩视频免费在线播放| 日本福利视频导航| 免费欧美一级视频| 国产成人美女视频| 久久久久99精品成人片| 美女网站色免费| 亚洲一区二区三区av无码| 爆乳熟妇一区二区三区霸乳| 久久免费视频2| 男人透女人免费视频| 亚洲AV无码成人精品一区| www黄色日本| 超碰中文字幕在线观看| 黄色片久久久久| 喜爱夜蒲2在线| 久草综合在线观看| 国产片侵犯亲女视频播放| 男人搞女人网站| 精品久久久久久无码中文野结衣| 亚洲黄色av网址| 欧美日韩一道本| 无码毛片aaa在线| 国产成人黄色网址| 国产精品-区区久久久狼| 91麻豆天美传媒在线| 久久人人爽av| 日韩视频免费在线播放| 99热久久这里只有精品| 激情文学亚洲色图| 丰满少妇在线观看| 国产日韩一区二区在线| 91传媒免费视频| 秋霞在线一区二区| 奇米影音第四色| youjizzxxxx18| 青青在线免费观看视频| 日韩a在线播放| 国模无码视频一区二区三区| 日本a在线天堂|