亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php面向對象之抽像類、接口、final、類常

2024-09-04 11:43:37
字體:
來源:轉載
供稿:網友

文章介紹關于php中的抽像類、接口、final、類常量基礎教程,有需要了解的朋友可以參考一下. php面向對象

一、抽像類(abstract)

在我們實際開發過程中,有些類并不需要被實例化,如前面學習到的一些父類,主要是讓子類來繼承,這樣可以提高代碼復用性

語法結構:

實例代碼如下:

  1. abstract class 類名{ 
  2.         屬性 $name
  3.         方法(){}  //方法也可以為abstract 修飾符 function 方法名(){} 
  4.     } 

實例代碼如下:

  1. abstract class animal{ 
  2.         public $name
  3.         public $age
  4.         //抽象方法不能有方法體,主要是為了讓子類去實現; 
  5.         abstract public function cry(); 
  6.         //抽象類中可以包含抽象方法,同時也可以包含實例類方法 
  7.         public function getname(){ 
  8.             echo $this->name; 
  9.         } 
  10.     } 
  11.     class Cat{ 
  12.         public function cry(){ 
  13.             echo 'ok'
  14.         } 
  15.     } 

理解:動物類,實際上是一個抽象的概念,它規定了一些動物有些哪共同的屬性和行為,但實際上它自己并沒收有那些屬性和行為.再比如:交通工具類,植物類等等

注意:

1、如果一個類用了abstract來修飾,則該類就是一個抽象類,如果一個方法被abstract修飾,那么該方法就是一個抽象方法,抽象方法不能有方法體=> abstract function cry();  連{}也不可以有

2、抽象類一定不能被實例化,抽象類可以沒有抽象方法,但是如果一個類包含了任意一個抽象方法,這個類一定要聲明為abstract類;

3、如果一個類繼承了另一個抽象類,則該子類必須實現抽象類中所有的抽象方法(除非它自己也聲明為抽象類);

二、接口(interface)

接口就是將一些沒有實現的方法,封裝在一起,到某個類要用的時候,再根據具體情況把這些方法寫出來;

語法結構實例代碼如下:

  1. interface 接口名{ 
  2.                //屬性、方法 
  3.                //接口中的方法都不能有方法體; 
  4.            } 
  5.            如何實現接口 
  6.            class 類名 implements 接口名{ 
  7.  
  8.            } 

理解:接口就是更加抽象的抽象類,抽象類里的方法可以有方法體,但是接口中的方法必須沒有方法體.接口實現了程序設計的多態和高內聚、低偶合的設計思想;

實例代碼如下:

  1. //接口是定義規范、屬性的,一般以小寫的i開頭; 
  2.         interface iUsb{ 
  3.             public function start(); 
  4.             public function stop(); 
  5.         } 
  6.         //編寫相機類,讓它去實現接口 
  7.         //當一個類實現了某個接口,那么該類就必須實現接口的所有方法 
  8.         class Camera implements iUsb{ 
  9.             public function start(){ 
  10.                 echo 'Camera Start Work'
  11.             } 
  12.             public function stop(){ 
  13.                 echo 'Camera Stop Work'
  14.             } 
  15.         } 
  16.         //編寫一個手機類 
  17.         class Phone implements iUsb{ 
  18.             public function start(){ 
  19.                 echo 'Phone Satrt Work'
  20.             } 
  21.             public function stop(){ 
  22.                 echo 'Phone Stop Work'
  23.             } 
  24.         } 
  25.         $c=new Camera(); 
  26.         $c->start(); 
  27.         $p=new Phone(); 
  28.         $p->start(); 

什么時候使用接口:

1、定下規范,讓其他程序員來實現

2、當多個平級的類,都需要去實現某個功能,但是實現的方式不一樣;

小結:

1、接口不能被實例化,接口中所有的方法都不能有主體;

2、一個類可以實現多個接口,以逗號(,)分隔 class demo implements if1,if2,if3{}

3、接口中可以有屬性,但必須是常量,常量不可以有修飾符(默認是public修飾符)

如:interface iUsb{

     const A=90;
        }

echo iUsb::A;

4、接口中的方法都必須是public的,默認是public;

5、一個接口不能繼承其他的類,但是可以繼承其它的接口,一個接口可以繼承多個其它接口

如:interface 接口名 extends if1,if2{}

6、一個類可以在繼承父類的同時實現其它接口

如:class test extends testbase implements test1,test2{}

實現接口VS繼承類 

php的繼承是單一繼承,也就是一個類只能繼承一個父類,這樣對子類功能的擴展有一定的影響.實現接口可以看做是對繼承類的一個補充.繼承是層級的關系,不太靈活,而實現接口是平級的關系,實現接口可以在不打破繼承關系的前提下,對某個功能擴展,非常靈活.

三、Final

1、如果我們希望某個類不被其它的類繼承(比如為了安全原因等..),那么可以考慮使用final

語法:final class A{}

2、如果我們希望某個方法,不被子類重寫,可以考慮使用final來修飾,final修飾的方法還是可以繼承的,因為方法的繼承權取決于public的修飾 

實例代碼如下:

 
  1. class A{ 
  2.                 final public function getrate($salary){ 
  3.                     return $salary*0.08; 
  4.                 } 
  5.             } 
  6.             class B extens A{ 
  7.                 //這里父類的getrate方法使用了final,所以這里無法再重寫getrate 
  8.                 //public function getrate($salary){ 
  9.                 //    return $salary*0.01; 
  10.                 //} 
  11.             } 

3、final不能用來修飾屬性         

四、類常量(const)

在某些情況下,可能有這樣的需求:當不希望一個成員變量被修改,希望該變量的值是固定不變的,這時可以使用const常量(常量名應該全用大寫,并且不帶$符號,常量不可以加修飾符)

語法: const 常量名=常量值;  //必須賦初值,因為常量是不能修改的

調用:類名::常量名[本類內部可用self::常量名]   或者  接口名::常量名  //接口中只能使用常量,不能使用變量

實例代碼如下:

  1. class A{ 
  2.     const TAX_RATE=0.08; 
  3.     function paytax($salary){ 
  4.         return $salary*self::TAX_RATE; 
  5.     } 
  6. $a=new A(); 
  7. echo $a->paytax(100); 

注:

1、常量可以被子類繼承

2、常量是屬于某個類的,而不屬于某個對象

雖然實現很簡單但大家只要有點基礎知識就可以方便快速的實現php面向對象編輯操作了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲自拍偷拍色片视频| 国产v综合v亚洲欧美久久| 成人日韩在线电影| 日韩免费精品视频| 国模极品一区二区三区| 亚洲人高潮女人毛茸茸| 日韩欧美一区二区三区| 高清一区二区三区日本久| 欧美黑人xxx| 亚洲精品一区在线观看香蕉| 国产亚洲免费的视频看| 最近2019年日本中文免费字幕| 国产精品6699| 国产成人精品久久亚洲高清不卡| 亚洲最大激情中文字幕| 久久精品国亚洲| 国产第一区电影| 色综合天天狠天天透天天伊人| 国产精自产拍久久久久久| 久久久久久国产精品久久| 色老头一区二区三区| 51色欧美片视频在线观看| 国产亚洲欧洲在线| 国产精品扒开腿做爽爽爽的视频| 国产精品网站入口| 日韩成人中文字幕在线观看| 久久久国产一区二区| 亚洲美女中文字幕| 国产精品视频免费观看www| 久久精品中文字幕电影| 欧美丝袜一区二区三区| 亚洲女人天堂av| 日韩av中文字幕在线免费观看| 亚洲在线视频福利| 精品国产一区二区三区四区在线观看| 欧美有码在线视频| 琪琪第一精品导航| 欧美激情视频一区二区三区不卡| 亚洲精品日韩欧美| 亚洲欧美另类自拍| 午夜精品蜜臀一区二区三区免费| 亚洲成人三级在线| 久久九九全国免费精品观看| 亚洲第一中文字幕| 91在线播放国产| 久久精品国产亚洲一区二区| 91精品久久久久久久久久久久久| 日韩日本欧美亚洲| 日韩欧美中文在线| 亚洲欧洲一区二区三区在线观看| 久久久久成人网| 一区二区欧美久久| 亚洲成年人在线播放| 在线成人激情视频| 色哟哟入口国产精品| 欧美专区第一页| 亚洲欧美中文日韩v在线观看| 欧美激情videoshd| 亚洲精选一区二区| 有码中文亚洲精品| 狠狠做深爱婷婷久久综合一区| 51精品国产黑色丝袜高跟鞋| 欧美日韩国产中字| 91久久国产婷婷一区二区| 亚洲精品一区二区三区婷婷月| 成人黄色短视频在线观看| 日韩在线观看网址| 国产成人久久久精品一区| 性欧美长视频免费观看不卡| 久久综合色影院| 亚洲美女av黄| 亚洲人成自拍网站| 国产精品久久久av| 国产精品视频中文字幕91| 91麻豆国产精品| 日韩精品视频三区| 国产精品尤物福利片在线观看| 成人性生交大片免费看视频直播| 91在线视频一区| 国产99久久精品一区二区永久免费| 国产精品精品视频一区二区三区| www.日韩免费| 国产98色在线| 精品亚洲一区二区三区在线观看| 国产不卡一区二区在线播放| 91性高湖久久久久久久久_久久99| 亚洲91精品在线| 国产精品777| 5278欧美一区二区三区| 欧美视频精品一区| 国产精品专区一| 91成人在线观看国产| 色中色综合影院手机版在线观看| 亚洲已满18点击进入在线看片| 51久久精品夜色国产麻豆| 欧美精品一二区| 一道本无吗dⅴd在线播放一区| 欧美wwwxxxx| 亚洲一区二区三区视频| 欧美大秀在线观看| 欧美日韩一区二区免费视频| 亚洲va国产va天堂va久久| 中日韩美女免费视频网站在线观看| 亚洲国产一区二区三区四区| 亚洲国产精品嫩草影院久久| 成人免费激情视频| 欧美理论电影在线播放| 久久频这里精品99香蕉| 亚洲在线www| 亚洲视频在线播放| 久久精品美女视频网站| 亚洲黄色www网站| 久久久久久久一区二区三区| 国产精品久久999| 欧美视频在线观看 亚洲欧| 国产欧美日韩综合精品| 亚洲a在线观看| 操人视频在线观看欧美| 色噜噜狠狠狠综合曰曰曰| 红桃av永久久久| 欧美激情在线一区| 日韩免费中文字幕| 国产男女猛烈无遮挡91| 国产91在线视频| 亚洲全黄一级网站| 欧美日韩中文字幕在线视频| 美女av一区二区三区| xxav国产精品美女主播| 97视频色精品| 日韩少妇与小伙激情| 国产丝袜精品第一页| 日本道色综合久久影院| 欧美日在线观看| 久久久久久美女| 久久久久久久国产| 中文字幕一区二区三区电影| 亚洲欧美中文字幕在线一区| 国产亚洲aⅴaaaaaa毛片| 欧美午夜视频一区二区| 亚洲在线观看视频网站| 亚洲第一精品夜夜躁人人爽| 91嫩草在线视频| 久久久99久久精品女同性| 亚洲欧美国产精品久久久久久久| 欧美午夜视频一区二区| 久久久综合免费视频| 91免费看国产| 2019精品视频| 国产亚洲精品成人av久久ww| 国产成人精品在线观看| 91影视免费在线观看| 中日韩美女免费视频网站在线观看| 深夜福利日韩在线看| 国产午夜精品一区理论片飘花| 日韩国产高清视频在线| 亚洲欧美成人一区二区在线电影| 欧美日韩一区二区免费视频| 亚洲www在线观看| 欧美日韩国产一区二区三区| 国产日韩精品电影| 日韩高清av一区二区三区| 在线日韩日本国产亚洲| 国产深夜精品福利| 亚洲黄在线观看|