PHP中的抽象類與接口有啥區別?

    深入場景業務,選擇合適的方式實現代碼,靠的是能力、經驗與智慧的綜合,決不是一句誰好誰不好所能定性的

    接口定義的是方法的一些規范,而抽象類定義的是類的模板。

    接口中只能聲明方法,但是不能定義具體的方法

    抽象類中可以聲明抽象方法,但是同時也可以具體去實現一些方法,但是抽象類不能被實例化

    所以如果你想對類的方法定義一些規范的同時,也想賦予這個類一些具體實現方法,那么就用抽象。

    如果你只想定義一個類的規范,那就用接口

    • 抽象:定義類的規范,賦予具體實現方法
    • 接口:定義類的規范

    相同

    • 抽象類和接口都有抽象方法
    • 抽象類和接口都不能實例化
    • 抽象類和接口的使用意義(即作用)相同

    區別

    • 抽象類的子類遵循繼承原則,只能有一個父類;但一個類可以實現多個接口
    • 抽象類中可以有非抽象的已經實現的方法;接口中全是抽象的方法,都是方法定義
    • 抽象類中方法和變量的訪問控制自己定義;接口中只能是公共的

    抽象類可以作為基類,為子類提供公共方法,并定制公共的抽象讓子類來實現。

    而接口則是更高層次的抽象,它可以讓我們依賴于抽象而不是具體的實現,為軟件開發帶來更多的擴展性。

    接口

    • 對接口的使用是通過關鍵字?implements
    • 接口只能定義常量
    • 子類必須實現接口定義的所有方法
    • 接口只能定義不能實現該方法
    • 接口沒有構造函數
    • 接口中的方法和實現它的類默認都是public類型的
    • 接口是一種特殊的抽象類

    接口 – PHP面向對象編程(OOP)

    抽象類

    • 對抽象類的使用是通過關鍵字extends
    • 不能被實例化,可定義子類必須實現的方法
    • 子類必須定義父類中的所有抽象方法,這些方法的訪問控制必須和父類一樣
    • 如果一個類中有一個抽象方法,則該類必須定義為抽象類
    • 抽象類可以有構造函數,但是不能被實例化
    • 抽象類中那個的方法可以使用private,protected,pubic來修飾
    • 一個類可以同時實現多個接口,但一個類只能繼承一個抽象類

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

    抽象類 – PHP面向對象編程(OOP)

    總結

    掌握好接口的設計原則,往往就能看懂一大半的框架的設計思想。這也是我們面向對象中最最基礎的特性。

    抽象類作為公共基類來說可以為多態提供比較好的范本,它能夠讓你的子類有自己的個性又能使用父類的能力。

    總之,深入場景業務,選擇合適的方式實現代碼,靠的是能力、經驗與智慧的綜合,決不是一句誰好誰不好所能定性的。

    參考文章

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    ?
    購物車
    優惠劵
    搜索
    主站蜘蛛池模板: 制服美女视频一区| 日本国产一区二区三区在线观看| 国产一区二区三区久久| 国产精品一区二区久久| 精品乱子伦一区二区三区| 人妻精品无码一区二区三区| 亚洲国产成人一区二区三区| 国产A∨国片精品一区二区| 精品国产一区二区三区免费看| 无码囯产精品一区二区免费| 久夜色精品国产一区二区三区| 美日韩一区二区三区| 日本一区二三区好的精华液| 69福利视频一区二区| 一区二区视频在线播放| 久久久久女教师免费一区| 日韩社区一区二区三区| 国产福利一区二区精品秒拍| 亚洲A∨精品一区二区三区下载| 亚洲一区二区三区免费视频| 无码国产精品一区二区免费3p | 亚洲午夜精品一区二区| 国产精品区一区二区三在线播放 | 蜜芽亚洲av无码一区二区三区| 久久亚洲日韩精品一区二区三区 | 日韩AV无码一区二区三区不卡| 日韩国产免费一区二区三区| 乱码精品一区二区三区| 亚洲国产av一区二区三区丶| 中文字幕一区一区三区| 亚洲乱色熟女一区二区三区蜜臀| 国模无码一区二区三区| 成人毛片无码一区二区| 国产传媒一区二区三区呀| 日韩毛片一区视频免费| 久久久国产一区二区三区| 精品一区二区三区中文字幕| 色窝窝无码一区二区三区色欲 | 精品福利视频一区二区三区 | 中日av乱码一区二区三区乱码| 99精品久久精品一区二区|