中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PHP中實現抽象類和抽象方法

發布時間:2021-06-07 16:35:42 來源:億速云 閱讀:198 作者:Leah 欄目:開發技術

怎么在PHP中實現抽象類和抽象方法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

  1. 抽象類:

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

  1. 抽象方法:

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

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

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

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

/**
* 抽象類
*
*/
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()
 {
 }

}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

黄平县| 清水县| 伊川县| 沁水县| 革吉县| 乳源| 临高县| 威宁| 嘉鱼县| 彭泽县| 丰镇市| 雷州市| 汾阳市| 陵水| 漠河县| 石泉县| 莱西市| 库尔勒市| 漳浦县| 布拖县| 武威市| 黔东| 曲靖市| 湾仔区| 股票| 民乐县| 武宣县| 松潘县| 桂阳县| 南岸区| 庐江县| 友谊县| 乌恰县| 廊坊市| 美姑县| 全南县| 汉沽区| 同心县| 安福县| 汉源县| 清苑县|