抽象類與介面
2014-9-2 9:14:32
摘要:1、抽象類(abstract
)2、介面(inte***ce
)3、多型的應用
1、抽象類(abstract)
特點:1)抽象類使用abstract關鍵字申明
2)抽象類中可以沒有抽象方法
3)任何乙個類,如果它裡面至少有乙個抽象方法,那麼這個類就必須被宣告為抽象的
4)抽象方法沒有方法體,直接分號(;)結束,,使用abstract關鍵字申明
5)抽象方法不能被例項化,只能被繼承(extends);子類必須過載抽象類中所有抽象方法
作用:1)定義乙個規範,具有約束性,強制要求子類定義這些方法(父類中的抽象方法)
注意:1)繼承乙個抽象類的時候,子類必須定義父類中的所有抽象方法
2)這些過載的方法的訪問控制必須和父類中一樣(或者更為寬鬆)
例如某個抽象方法被宣告為受保護的,那麼子類中實現的方法就應該宣告為受保護的或者公有的,而不能定義為私有的
3)此外方法的呼叫方式必須匹配,即型別和所需引數數量必須一致
例如,子類定義了乙個可選引數,而父類抽象方法的宣告裡沒有,則兩者的宣告並無衝突。
示例:
abstractclass
demo
}class subdemo extends
demo
}
2、介面(inte***ce)
介面與抽象類很像,都是約束作用,只是介面裡面的方法全部是抽象的,且不需要使用abstract申明;
介面使用inte***ce申明
特點:1)介面使用inte***ce申明
2)介面中的方法全部是抽象的,不需要使用abstract申明
3)介面不能被例項化,必須被引用(implements,同抽象類中的繼承)使用
4)子類可以引用多個介面,用逗號(,)隔開
作用:1)定義乙個規範,具有約束性
2)使用介面(inte***ce),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容
注意:1)要實現乙個介面,使用implements操作符
2)類中必須實現介面中定義的所有方法,否則會報乙個致命錯誤
3)類可以實現多個介面,用逗號來分隔多個介面的名稱
4)實現多個介面時,介面中的方法不能有重名
5)介面也可以繼承,通過使用extends操作符
示例:
inte***cedb
3、多型的應用
物件的多型性是指在父類中定義的屬性或行為被子類繼承之後,可以具有不同的資料型別或表現出不同的行為.
這使得同乙個屬性或行為在父類及其各個子類中具有不同的語義.
例如生活中的usb就可以實現多型功能:插入u盤和滑鼠都能正常工作,且完成各自的工作,但內部肯定有一致的規範定義
示例:
<?php//定義乙個外圍控制介面pci
inte***ce
pci//
定義主機板類
class
mainborad}//
定義音效卡引用pci規範
class soundcard implements
pci
public
function
stop()}//
定義網絡卡引用pci規範
class networkcard implements
pci
public
function
stop()
}$sys = new
mainborad();
$sys->work(new soundcard);//
傳入音效卡物件
$sys->work(new networkcard);//
傳入網絡卡物件
?>
PHP物件導向05 介面與多型
抽象類與介面 2014 9 2 9 14 32 摘要 1 抽象類 abstract 2 介面 inte ce 3 多型的應用 1 抽象類 abstract 特點 1 抽象類使用abstract關鍵字申明 2 抽象類中可以沒有抽象方法 3 任何乙個類,如果它裡面至少有乙個抽象方法,那麼這個類就必須被宣...
物件導向8(介面)
概念 使用inte ce修飾的 塊。語法 訪問修飾符 inte ce 介面名 訪問修飾符 暫時使用public inte ce 關鍵字,含義是介面。介面名 識別符號。介面成員 靜態常量,抽象方法。inte ce inter class method implements inter public c...
物件導向 8 介面與介面的實現
二 介面的作用?三 介面的相關語法 四 介面的向上造型 總結 1 介面的語法 2 什麼情況下用介面?3 介面的好處 本篇文章主要講解介面的語法,什麼情況下用介面?讀者如果發現有什麼理解錯的地方指正一下,我會第一時間來改正並重新學習,謝謝大家 1 是一種資料型別 引用資料型別 2 由inte ce定義...