ホームページ >バックエンド開発 >PHPチュートリアル >php_PHP チュートリアルの抽象クラスとインターフェイスの概念と違い

php_PHP チュートリアルの抽象クラスとインターフェイスの概念と違い

WBOY
WBOYオリジナル
2016-07-20 11:17:061011ブラウズ

この記事は、PHP の抽象クラスとインターフェイスの概念と違いを詳細に分析して紹介したもので、必要な方は参考にしてください。 ​ コードをコピー コードは次のとおりです。
//抽象クラスの定義:
abstract class ku{ //抽象クラスを定義します
抽象関数 kx();
...
}
関数 aa は ku を拡張します{
//抽象クラスを実装するメソッド
関数 kx(){
エコー 'sdsf';
}
}
//使い方
$aa=新しい aa;
$aa->kx();
//1. サブクラスはこの抽象化のすべてのメソッドを完全に実装する必要があります
//2. オブジェクトは抽象クラスからは作成できません。その意味は拡張されるものです
//3. 抽象クラスには通常、抽象メソッドがあり、メソッドには中括弧がありません
//4. 抽象メソッドは特定の関数を実装する必要がなく、サブクラスによって完成されます
//5. サブクラスが抽象クラスのメソッドを実装する場合、サブクラスの可視性は抽象メソッドの定義以上である必要があります
//6. 抽象クラスのメソッドはパラメータを持つことも、空にすることもできます
//7. 抽象メソッドにパラメータがある場合、サブクラスの実装にも同じ数のパラメータが必要です
////////////////////////////////インターフェースクラス定義:
インターフェースショップ{
パブリック関数 buy($gid);
パブリック関数 sell($gid);
抽象関数ビュー($gid);
}
// インターフェイスを使用する場合は、インターフェイス クラスでメソッドを定義する必要があります (抽象を除く)。
//このようにして、大規模なプロジェクトの場合、他の人が次のメソッドをどのように実行しても、このインターフェースのすべてのメソッドを実装する必要があります!
//例: 上記のインターフェースを実装する方法
クラス BaseShop は Shop{
を実装します パブリック関数 buy($gid){
echo '$gid の製品を購入しました。';
}
パブリック関数 sell($gid){
echo '$gid の製品を購入しました。';
}
パブリック関数ビュー($gid){
echo 'ID: $gid の製品を閲覧しました。';
}
}
//インターフェースの多重継承例:
インターフェース Staff_i1{ //インターフェース 1
関数 setID();
関数 getID();
}
インターフェース Staff_i2{ //インターフェース 2
関数 setName();
関数 getName();
}
クラスのスタッフは、staff_i1,staff_i2{
を実装します プライベート $id;
プライベート $name;
関数セットID($id){
$this->id = $id;
}
関数getID(){
$this->id; を返す
}
関数 setName($name){
$this->name = $name;
}
関数 getName(){
$this->名前を返す;
}
function otherFunc(){ //インターフェースに存在しないメソッドです
「テスト」をエコー;
}
}
?>


彼らの違い:
1.抽象クラスは非抽象メソッドを持つことができますが、インターフェイスは抽象メソッドのみを持つことができます。
2.クラスは複数のインターフェイスを継承できますが、クラスは 1 つの抽象クラスのみを継承できます。
3.インターフェースはimplementsキーワードで使用し、抽象クラスはextendsキーワードを継承して使用します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/372201.html技術記事この記事は、PHP の抽象クラスとインターフェイスの概念と違いを詳細に分析し、紹介したものです。参考のために、次のコードをコピーしてください: //抽象クラスの定義: 抽象...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。