php 的抽象方法和抽象類和介面
1. 什麼是抽象方法?
定義:乙個方法如果沒有方法體,則這個方法就是抽象方法。沒有方法體: 乙個方法不使用 「{}」,直接使用分號結束的方法。
如果是抽象方法,必須使用 abstract 來修飾
2. 什麼是抽象類?
如果乙個類中有乙個方法是抽象方法,則這個類是抽象類。 如果宣告乙個抽象類,必須使用 abstract 來修飾注意:
只要使用 abstract 修飾的類就是抽象類。不一定有抽象方法
抽象類是一種特殊的類,在抽象類中可以有抽象方法。
除了在抽象類中可以有抽象方法,其他和正常的類完全一樣。
注意 2:
抽象類不能例項化物件
如果看見抽象類就必須寫這個類的子類。將抽象類的抽象方法覆蓋(加上方法體)
子類必須全部實現抽象類的抽象方法。如果只實現部分,那麼子類也必須是抽象類。
抽象方法的作用:
抽象方法的作用就是規定子類必須有這個方法的實現,功能交給子類。 只寫出結構,而沒有實現,實現交給子類按照自己的功能去實現。抽象類的作用:
規範所有子類的寫法
abstract
class
person
function
sleep()
}class
studentcn
extends
person
}class
studenten
extends
person
}$s1
=new
studenten()
;$s2
=new
studentcn()
;$s1
->
say();
$s2-
>
say(
);
抽象類是一種抽象的類,介面是一種特殊的抽象類。
抽象類和介面中都有抽象方法
抽象類和介面都不能例項化物件
抽象類和介面使用作用一樣,都是規範
介面和抽象類相比,特殊在**?
介面中的方法,必須全部是抽象方法。所以在介面中,可以省略 abstract
介面中的成員屬性,必須是常量(不能有變數)。
所有的許可權必須是公有的(public)
宣告介面使用inte***ce
介面應用的一些細節:
可以使用extends
繼承自另乙個介面。(介面和介面只有擴充套件新抽象方法,沒有覆蓋的關係)
可以使用乙個類來實現介面中的全部方法,也可以使用乙個抽象類,來實現介面中的部分方法
(類與介面,抽象類與介面 =》有實現介面中的抽象方法)
類(抽象類)實現介面使用關鍵字 implements
實現多個介面只需要使用逗號分開即可。
inte***ce
demo
inte***ce
test
extends
demo
inte***ce
abcclass
world
}class
hello
extends
world
implements
test
,abc
function
demo2()
function
demo3()
function
test4()
function
abc(
)function
test5()
}$h=new
hello()
;$h->
demo3()
;
inte***ce
usbclass
computer
}class
mouse
implements
usbfunction
run(
)function
stop()
}class
keyboard
implements
usbfunction
run(
)function
stop()
}class
worker}$m
=new
mouse()
;$k=new
keyboard()
;worker:
:work($m
);worker:
:work($k
);
介面,抽象類和抽象方法
1.定義介面 介面使用 inte ce 關鍵字宣告,它與類的宣告類似。介面宣告預設 是 public 的。通常介面命名已i字母開頭。inte ce 介面名 2.介面繼承介面 多個介面用,號進行區分 inte ce 介面名 繼承的介面名 3.類實現介面 訪問修飾符 class 類名 介面名 4.乙個類...
抽象類,抽象方法和介面
抽象類 抽象類是一種模板模式,為所有子類提供乙個通用模板,子類可以在這個模板基礎上進行擴充套件。通過抽象類,可以避免子類設計的隨意性。通過抽象類,我們可以做到嚴格限制子類的設計,使子類之間更加通用。抽象類的要點 public abstract class animal class student e...
抽象類,抽象方法和介面
含有抽象方法的類 沒有方法實現體的方法就是抽象方法 抽象方法的關鍵字是abstract 抽象方法沒有方法體 public abstract 返回值資料型別 抽象方法名 引數列表 注意抽象方法沒有方法體 public abstract class 類名1.乙個類繼承抽象類,那麼就會重寫抽象類中所有的抽...