最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解PHP的抽象類和抽象方法以及接口總結

 更新時間:2019年03月15日 09:54:16   作者:Steven*  
這篇文章主要介紹了PHP的抽象類和抽象方法以及接口總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

PHP中的抽象類和抽象方法自己用的不多,但是經常會在項目中看到別人使用,同樣,今天在看別人的代碼的時候,發(fā)現使用了抽象類,就總結下:

  1. 抽象類:

1、如果一個類中有一個方法是抽象方法,則這個類就是抽象類;
2、抽象類必須加上abstract關鍵字修飾;

  1. 抽象方法:

定義:一個方法如果沒有方法體,則這個方法就是抽象方法
1、一個方法沒有方法體,直接用分號結束的方法;
2、如果是抽象方法,必須使用abstract抽象關鍵字形容

注意:1、只要有abstract修飾的類就是抽象類
     2、除了在抽象類中可以有抽象方法之外,和正常的類完全一樣
   3、抽象類不能實例化對象
   4、如果有抽象類,就必須有這個類的子類,并且在子類中寫方法覆蓋抽象類中的抽象方法(加上方法體)
   5、子類必須全部重寫父類中的抽象方法,這個子類才能被實例化,如果只是實現部分,那么這個子類還是抽象類

抽象類的作用:就是嚴格要求子類的結構,所以抽象類其實就是一個規(guī)范。

抽象方法的作用:就是規(guī)定子類必須有這個方法,且將功能交給子類來處理,只寫出來方法的結構,而沒有實現(無方法體),具體的功能實現交給具體的子類根據自己的需求實現

 

/**
* 抽象類
*
*/
abstract class Person
{
 public $name;
 public $age;

 //抽象方法
 abstract function say();

 abstract function eat();

 function run()
 {
 echo "hello world";
 }

 function sleep()
 {
 echo "test";
 }
}

 

/**
* 抽象類的子類
*
*/
class StudentCn extends Person
{
 function say()
 {
 echo "我說中文<br>";
 }

 function eat()
 {
 echo "我用筷子吃飯";
 }
}

接口:接口是一種特殊的抽象類

1、抽象類和接口都有抽象方法

2、抽象類和接口都不能實例化

3、抽象類和接口的使用意義(即作用)相同

比較:

a、接口中的方法,必須全部是抽象方法,所以接口中的抽象方法不需要使用abstract關鍵字,直接用分號結束即可
b、接口中的成員屬性,必須是常量(不能有變量)
c、所有的方法必須全部是public
d、聲明接口不適用class,而是使用interface

Tips:

1、可以使用extends讓一個接口繼承另一個接口,即常用的繼承(擴展新抽象方法),無覆蓋的關系
2、可以使用一個類來實現接口中全部方法,也可以使用一個抽象類,來實現接口中的部分方法
3、不要使用extends這個關鍵字,使用implements實現implements相當于extends
4、一個類可以在繼承另一個類的同時,使用implements實現一個接口,也可以實現多個接口(一定要先繼承,再實現接口)

/**
* 接口
*/
interface Demo
{
 const Name = "妹子";
 const Age = 10;

 function test();

 function test2();
}
echo Demo::Name;//訪問常量

/**
* 接口繼承接口,用于擴展接口
*/
interface Test extends Demo
{
 function test4();
}

/**
* 普通類
*/
class world
{
 function test5()
 {
 }
}


/**
* 繼承+接口
*/
class Hello extends World implements Test
{

 function test()
 {
 }

 function test2()
 {
 }

 function test3()
 {
 }

 function test4()
 {
 }

 function test5()
 {
 }

}

以上所述是小編給大家介紹的PHP的抽象類和抽象方法以及接口總結詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • php+mysqli批量查詢多張表數據的方法

    php+mysqli批量查詢多張表數據的方法

    這篇文章主要介紹了php+mysqli批量查詢多張表數據的方法,涉及multi_query、store_result及more_results等函數的使用技巧,需要的朋友可以參考下
    2015-01-01
  • DEDE采集大師官方留后門的刪除辦法

    DEDE采集大師官方留后門的刪除辦法

    說實話,會故意留后門的程序,最好的方法就是別用。這個后門被發(fā)現了,天知道下一個所謂的新版本還會不會冒出更多的后門來。
    2011-01-01
  • PHP __autoload()方法真的影響性能嗎?

    PHP __autoload()方法真的影響性能嗎?

    對于php性能問題,議論最多的就是__autoload()方法,很多人提到這個方法非常影響性能。還有人說opcode也能影響到__autoload()方法,所以針對這兩點我做了個測試
    2012-03-03
  • jQuery獲取json后使用zy_tmpl生成下拉菜單

    jQuery獲取json后使用zy_tmpl生成下拉菜單

    這篇文章主要介紹了我開發(fā)過程中使用jQuery獲取json后使用zy_tmpl生成下拉菜單的實例,雖然是第一次寫關于AppCan開發(fā)的內容,有需要的小伙伴可以參考下。
    2015-03-03
  • Php 構造函數construct的前下劃線是雙的_

    Php 構造函數construct的前下劃線是雙的_

    最近寫php的class時,總是碰到function non object的錯誤,知道是類沒有實例化,但就是不知道錯誤在哪里。
    2009-12-12
  • curl_setopt中的CURLOPT_WRITEFUNCTION使用回調和閉包

    curl_setopt中的CURLOPT_WRITEFUNCTION使用回調和閉包

    在PHP中,curl_setopt函數的 CURLOPT_WRITEFUNCTION 是 PHP 中的 cURL 庫的一個選項,允許你指定一個回調函數,這個回調函數會處理從服務器接收到的數據,這個回調函數應該有兩個參數,第一個是接收到的數據,第二個是寫入數據的長度
    2024-08-08
  • PHP使用自定義方法實現數組合并示例

    PHP使用自定義方法實現數組合并示例

    這篇文章主要介紹了PHP使用自定義方法實現數組合并示例,涉及php針對數組的遍歷、判斷、轉換等相關操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • PHP?redis?Sorted?Set實現字符串去重代碼示例

    PHP?redis?Sorted?Set實現字符串去重代碼示例

    Redis中的Sorted?Set數據結構可以用來存儲有序的唯一值,它們可以被用來構建有序的集合或者有權重的數據結構,下面這篇文章主要給大家介紹了關于PHP?redis?Sorted?Set實現字符串去重的相關資料,需要的朋友可以參考下
    2023-05-05
  • 調試一段PHP程序時遇到的三個問題

    調試一段PHP程序時遇到的三個問題

    調試一段PHP程序時遇到的三個問題,學習php的朋友可以參考下。
    2012-01-01
  • php實現簡單的上傳進度條

    php實現簡單的上傳進度條

    大家在上傳文件時都會看到一個非常精致的進度條,從進度條上我們很直觀的可以看到文件、圖片上傳進度,本文分享了php實現簡單的上傳進度條,感興趣的小伙伴們可以參考一下。
    2015-11-11

最新評論

资源县| 溧阳市| 区。| 观塘区| 中牟县| 板桥市| 余干县| 凤冈县| 昭通市| 岳普湖县| 赣榆县| 江达县| 怀集县| 拉萨市| 天全县| 漳浦县| 兴国县| 五台县| 浦北县| 柏乡县| 甘洛县| 伊春市| 合山市| 射洪县| 临朐县| 平昌县| 襄垣县| 鄱阳县| 雷波县| 东丰县| 安徽省| 治县。| 历史| 阿坝县| 黑山县| 武平县| 米脂县| 盱眙县| 丽水市| 宣城市| 渑池县|