php抽象方法db,PHP笔记之抽象方法抽象类
抽象方法
定義:一個方法如果沒有方法體,則這個方法就是抽象方法。
1.一個方法們沒有{},直接使用分號結(jié)束的方法;
2.如果是抽象方法,必須使用abstract(抽象關(guān)鍵字來修飾)
抽象類
1.如果一個類中有一個方法是抽象方法,則這個類就是抽象類
2.必須加abstract關(guān)鍵字來修飾
注意:
1.只要有abstract來修飾的類就是抽象類,
2.抽象類是一種特殊的類,特殊在抽獻(xiàn)給中可以有抽象方法
3.除了在抽象類中可以有抽象方法以外,和正常的類完全一樣
4.抽象類不能實(shí)例化對象
5.如果看見抽象類,就必須寫這個類的子類,將抽象類中的抽象方法覆蓋(加上方法體)
6.子類必須全部覆蓋重寫抽象方法,這個子類才能創(chuàng)建對象,如果只實(shí)現(xiàn)部分,那么還有抽象方法,則類也就必須是抽象類
抽象方法作用:
1.抽象方法的作用就是規(guī)定了,子類必須有這個方法,功能交給子類
2.只寫出來結(jié)構(gòu),而沒有實(shí)現(xiàn),實(shí)現(xiàn)交給具體的子類按自己的功能實(shí)現(xiàn)
抽象類的作用:
就是要求子類的結(jié)構(gòu),所以抽象類就是一個規(guī)范。
abstract class Person{
public $name;
public $age;
//抽象方法
abstract function say();
abstract function eat();
function run(){
echo "1111111
";
}
function sleep(){
echo "222222
";
}
}
class StudentCn extends Person{
function say(){
echo "我說中文
";
}
function eat(){
echo "我用筷子吃飯";
}
}
class StudentEn extends Person{
function say(){
echo "我說英語
";
}
function eat(){
echo "我用叉子
";
}
}
?>
如果只是個規(guī)范,用的著這么麻煩么,具體有什么意義呢?還看以后分享
接口
接口是一種特殊的抽象類
1.抽象類和接口都有抽象方法
2.抽象類和接口都不能創(chuàng)建實(shí)例對象
3.抽象類和接口的使用意義也就是作用相同
比較
1.接口中的方法,必須要全是抽象方法,所以在接口中的抽象方法不需要使用abstract,直接使用分號結(jié)束即可
2.接口中的成員屬性,必須是常量(不能有變量)
3.所有的權(quán)限必須是公有的(public)
4.聲明接口不使用class,而是使用interface
接口應(yīng)用細(xì)節(jié)
1.可以使用extends讓一個接口繼承另一個接口(接口和接口---只有擴(kuò)展新抽象方法,沒有覆蓋的關(guān)系)
2.可以使用一個類來實(shí)現(xiàn)接口中全部方法,也可以使用一個抽象類,來實(shí)現(xiàn)接口中的部分方法
3.就不要使用extends這個關(guān)鍵字,使用implements實(shí)現(xiàn)
implements相當(dāng)于extends, extends繼承,這個在PHP中,一個類只能有一個父類
4.一個類可以在繼承另一個類的同時,使用implements實(shí)現(xiàn)一個接口,也可以實(shí)現(xiàn)多個接口(一定要先繼承,再實(shí)現(xiàn)接口)
5.實(shí)現(xiàn)多個接口,只需要使用逗號分開
interface Demo{
const Name = "妹子";
const Age = 10;
function test();
function test2();
}
echo Demo::Name;//訪問常量
interface Test extends Demo{
function test4();
}
class world {
function test5(){
}
}
interface Abc{
function test6();
}
class Hello extends World implements Test{
function test(){
}
function test2(){
}
function test3(){
}
function test4(){
}
function test5(){
}
function test6(){
}
}
總結(jié)
以上是生活随笔為你收集整理的php抽象方法db,PHP笔记之抽象方法抽象类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php seaslog安装,浅谈win1
- 下一篇: java and dsl_Groovy语