PHP_PHP チュートリアルにおける抽象クラスとインターフェイスの概念と違いの簡単な分析

WBOY
リリース: 2016-07-21 15:03:11
オリジナル
930 人が閲覧しました

コードをコピーします コードは次のとおりです:

//抽象クラスの定義:
abstract class ku{ //抽象クラスを定義します
抽象関数 kx();
...
}
function aa extends ku{
//抽象クラス
関数を実装するメソッド kx(){
echo 'sdsf';
}
}
//使用方法
$aa=new aa;
$aa->kx();
//1. いくつかのメソッドを定義し、サブクラスはこの抽象化のすべてのメソッドを完全に実装する必要があります
//2. 抽象クラスからオブジェクトを作成することはできません。その意味は拡張されます
//3. 抽象クラスには抽象メソッドが含まれます。メソッド
//4 には中括弧がありません。抽象メソッドは特定の関数を実装する必要がなく、サブクラス
//5 によって完成されます。サブクラスが抽象クラスのメソッドを実装する場合、サブクラスの可視性はさらに高くなければなりません。抽象メソッドの定義と同じか、定義
//6。抽象クラスのメソッドはパラメータを持つことも、空にすることもできます
//7。抽象メソッドにパラメータがある場合、サブクラスの実装にも同じパラメータが必要です。パラメータの数
/////// ///////////////////////インターフェースクラスの定義:
interface Shop{
public function buy( $gid);
public function sell($gid);
abstract function view($gid);
}
// インターフェイスを使用する場合は、インターフェイス クラスでメソッドを定義する必要があります (abstract を除く)。
//このように、他の人が大規模なプロジェクトで次のメソッドをどのように実行しても、このインターフェースのすべてのメソッドを実装する必要があります。
//例: 上記のインターフェースを実装する 1 つの方法
class BaseShopimplements Shop {L Public Function Buy ($ gid) {
Echo 'ID を購入しました:' . $gid ';
}
public function view($gid){
. ID:' の製品を参照しました。 例:
interfacestaff_i1{ //インターフェイス 1
function setID();
function getID();
}
interface Staff_i2{ //インターフェイス 2
function setName();
function getName();
}
クラスの Staff は、staff_i1,staff_i2{
private $id;
private $name;
function setID($id){
$this->id = $id; を実装します。
}
function getID(){
return $this ->id;
}
function setName($name){
$this->name = $name;
}
function getName(){
return $this ->name;
}
function otherFunc() { //これはインターフェースに存在しないメソッドです
echo “Test”;
}
}
?>




それらの違い:


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

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/327877.html技術記事次のコードをコピーします。 //抽象クラスの定義: abstract class ku{ //抽象クラスを定義します abstract function kx(); ... } function aa extends ku{ //抽象クラス fu.. のメソッドを実装します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート