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

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

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

本文目標:

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

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

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

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

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

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

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

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

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

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

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

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

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

(四)、掌握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(){         //所有動物的呼吸方法都是一樣的,就不需要使用多態了         echo "呼吸<br/>";     } } ?>

案例二、

實踐目標:

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

具體代碼如下:

<?php abstract class Animal{     abstract public function eat();//抽象方法     //呼吸     public function breath(){         //所有動物的呼吸方法都是一樣的,就不需要使用多態了         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(){         //所有動物的呼吸方法都是一樣的,就不需要使用多態了         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(){         //所有動物的呼吸方法都是一樣的,就不需要使用多態了         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(){         //所有動物的呼吸方法都是一樣的,就不需要使用多態了         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、我們發現這2個對象都有相似的方法,看,親嘴,所以我們可以把它們封裝到抽象類中,并且這2個方法不需要子類去重寫,因為都是一樣的

具體代碼如下:

<?php abstract class Animal{     //看     public function look($obj){         //所有動物的呼吸方法都是一樣的,就不需要使用多態了         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、親嘴 } //創建對象 $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中抽象類的定義,作用以及具體的實現

希望本文能給大家帶來一定的幫助,謝謝!!!

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
www.99热这里只有精品| av日韩一区二区三区| 五月婷婷丁香综合网| 熟妇人妻va精品中文字幕| 日日碰狠狠添天天爽超碰97| 日韩av三级在线| 亚洲人成色77777| 婷婷激情四射五月天| 97超碰人人爽| h无码动漫在线观看| 久草精品在线播放| 成人不卡免费视频| 欧美视频在线第一页| 男人操女人免费软件| 中文字幕有码av| 日本xxx免费| 116极品美女午夜一级| 欧美精品aaaa| 伊人再见免费在线观看高清版 | 男人插女人视频在线观看| 免费拍拍拍网站| 亚洲精品怡红院| 国产视频在线观看网站| 国产成人a亚洲精v品无码| 青青草原国产在线视频| 久久99久久99精品| 麻豆一区二区三区视频| 黄色一级片黄色| 99视频精品免费| 99热都是精品| 国产一二三四在线视频| 中文字幕の友人北条麻妃| 无码人妻h动漫| 日本一道在线观看| 亚洲天堂2018av| 成人免费aaa| 免费观看黄色的网站| 狠狠操精品视频| 日本阿v视频在线观看| 国产一二三区av| 国产精品久久中文字幕| 91视频 - 88av| 天天干天天色天天干| 欧美污视频网站| 男女猛烈激情xx00免费视频| 超碰成人在线免费观看| 亚洲免费看av| 亚洲 中文字幕 日韩 无码| 99热亚洲精品| 美女黄色免费看| 中文字幕制服丝袜在线| 老司机午夜性大片| 成人性做爰aaa片免费看不忠| a级免费在线观看| 欧美日韩dvd| 青少年xxxxx性开放hg| www.久久久久久久久久久| 日本特黄a级片| 三级av免费观看| 亚洲xxxx2d动漫1| 国产xxxxx视频| 国产日产欧美视频| 成人在线看视频| 欧美精品第三页| 国产免费人做人爱午夜视频| 玩弄japan白嫩少妇hd| 色综合av综合无码综合网站| 成年人黄色片视频| 九色91popny| 911福利视频| 日韩高清在线一区二区| 永久免费在线看片视频| av 日韩 人妻 黑人 综合 无码| 成人午夜免费剧场| 日韩精品一区在线视频| 日韩精品xxxx| 欧美三级理论片| 五月天丁香花婷婷| 欧美大片免费播放| 日韩精品 欧美| 美女福利视频在线| 最近中文字幕一区二区| 91香蕉视频网址| 欧美又粗又长又爽做受| 日韩精品无码一区二区三区免费| 人妻丰满熟妇av无码区app| 国产九九热视频| 蜜桃网站在线观看| av天堂永久资源网| 男人的天堂最新网址| 成人午夜免费剧场| 37pao成人国产永久免费视频| 亚洲国产成人va在线观看麻豆| 亚洲综合123| 自拍日韩亚洲一区在线| 亚洲综合在线网站| 真人做人试看60分钟免费| 日本久久久精品视频| 亚洲精品国产一区二区三区| 成品人视频ww入口| 久久黄色片网站| 久久av高潮av| 日韩高清第一页| 好吊妞无缓冲视频观看| 亚洲最大综合网| av在线观看地址| 日韩精品aaa| 美女网站免费观看视频| 加勒比成人在线| 婷婷视频在线播放| 国产一二三区av| 亚洲 高清 成人 动漫| 天堂av在线中文| 亚洲天堂网2018| 黄色片在线免费| 乱妇乱女熟妇熟女网站| 日本一本中文字幕| 神马午夜伦理影院| 6080国产精品| 日本不卡一区二区在线观看| 欧美xxxxx在线视频| 国产老熟妇精品观看| 成人性生活视频免费看| 成人免费看片视频在线观看| 午夜xxxxx| 亚洲天堂伊人网| 午夜视频在线网站| 538任你躁在线精品免费| 国产精品69页| 国产a级片免费观看| 人妻丰满熟妇av无码区app| 国产尤物av一区二区三区| 亚洲视频在线a| 黄色大片中文字幕| 我要看一级黄色大片| 天天操天天爱天天爽| 国产欧美123| 国产三级国产精品国产专区50| 91香蕉视频污版| 大片在线观看网站免费收看| 天堂社区在线视频| 国产精品自拍视频在线| 日韩在线一级片| 男人天堂999| 成人亚洲精品777777大片| 欧美日韩不卡在线视频| 日b视频免费观看| 久激情内射婷内射蜜桃| 99久re热视频精品98| 男人天堂新网址| 国产美女主播在线| 九九九九九伊人| 亚洲国产精品无码av| 久艹视频在线免费观看| 在线不卡一区二区三区| 欧美三级一级片| 国产视频1区2区3区| 日本va中文字幕| 999在线精品视频| 欧美日韩不卡在线视频| 中文字幕の友人北条麻妃| www.av毛片| 欧美综合在线播放| 中国丰满熟妇xxxx性| 久久人妻精品白浆国产| 国产二区视频在线播放| 日韩国产一级片| 一级做a免费视频| 一起操在线视频| 欧美 亚洲 视频| 日日躁夜夜躁aaaabbbb| 午夜激情在线观看视频| 97精品国产97久久久久久粉红| 亚洲综合伊人久久| 91丝袜超薄交口足| 免费无码av片在线观看| 成人免费观看毛片| 韩国中文字幕av| 精品国产一区二区三区无码| 国产在线视频综合| 干日本少妇首页| 国产一级大片免费看| 青青青在线视频播放| 在线观看中文av| xxxxxx在线观看| 丰满少妇久久久| 免费看污污视频| 日韩a∨精品日韩在线观看| 欧美大片免费播放| 中文字幕永久有效| 99re99热| 午夜一级免费视频| 真实国产乱子伦对白视频| 9191国产视频| eeuss中文| 国产黄色激情视频| 92看片淫黄大片一级| 日本少妇高潮喷水视频| 中文字幕第36页| 欧洲av无码放荡人妇网站|