ホームページ > ウェブフロントエンド > jsチュートリアル > PHP抽象スキルとinterface_javascriptスキルの違い

PHP抽象スキルとinterface_javascriptスキルの違い

WBOY
リリース: 2016-05-16 17:16:16
オリジナル
1323 人が閲覧しました

1.php インターフェースクラス: インターフェース

実際、それらの役割は非常に単純です。多くの人が一緒にプロジェクトを開発する場合、全員が他の人が作成したいくつかのクラスを呼び出すことがあります。その場合、特定の関数の実装メソッドに名前を付けるにはどうすればよいのかと疑問に思うかもしれません。はい、この時点で php インターフェイス クラスが機能します。インターフェイス クラスを定義するとき、そのクラス内のメソッドは、


インターフェイス Shop
{
public function buy($gid);
public function sell( $gid);
public function view($gid);
}

ショップ インターフェイス クラスを宣言し、buy、sell、look (view)、then all の 3 つのメソッドを定義します。このクラスを継承するサブクラスは、これら 3 つのメソッドのいずれかを実装する必要があります。サブクラスがこれらを実装していない場合、機能しません。実際、インターフェイス クラスは、端的に言えば、クラスのテンプレートであり、クラスの規則です。このカテゴリに属する​​場合は、どのような方法であっても、私の規則に従わなければなりません。
コードをコピーします コードは次のとおりです:

class BaseShop 実装 Shop
{
public function buy($gid)
{
echo('ID: '.$gid.' の製品を購入しました。');
}
public function sell($ gid)
{
echo('ID: '.$gid.' の商品を販売しました。');
}
public function view($ gid)
{
echo('次の ID で商品を閲覧しました:'.$gid.');
}
}

考えてみてください。複数の人々が共同作業する大規模なプロジェクト、特定の関数のメソッド名を他の人に尋ねる必要がないように、インターフェイス クラスがあるととても便利です。もちろん、これが気に入っていただければ、私はお手伝いできません。それ。

結論: インターフェイス クラスはクラスのリーダーであり、サブクラスがその指定されたメソッドを完了する必要があります。

2.php 抽象クラス: 抽象

実際、抽象クラスとインターフェースクラスは部分的に似ているのですが、抽象クラスはクラスイメージの一部を抽出したもので、実際には抽象クラスの役割を語っています。抽象クラスの多くが、書き換えを続ける多くのメソッドを使用していることがわかった場合は、「インスタンス化するすべてのパブリック クラスに対して 1 つのクラスを書き換えることはできない」と言うかもしれません。このパブリック クラスを作成し、同じメソッドを呼び出します。」 これで問題ありません。実際、これは抽象クラスの動作ですが、インスタンス化のステップが省略され、直接このクラス メソッドを呼び出すことも同様に便利です。このメソッドをオーバーロードすることもできます。例:

コードをコピー コードは次のとおりです。

抽象クラス BaseShop
{
public function buy($gid)
{
echo ('販売した製品:'.$Gid.');
}
}
class BallShop extends BaseShop
{
var $itme_id = null;
public function __construct()
{
$this->itme_id = 2314;
}
パブリック関数 open()
{
$this->sell($this->itme_id)
}
}



上記と同様に、store クラスを定義し、そのすべての部分、buy、sell、view を抽出し、これらのメソッドを抽象クラスに実装すると、それを継承するサブクラスがこれらを自動的に取得します。メソッドとサブクラスは独自の処理を実行し、コードの重複を導入し、再利用性を向上させます。

結論: 抽象クラスはクラスのサービスプロバイダーであり、それらを使用する必要はありません。提供されたサービスに満足できない場合は、自分で対応することもできます。抽象関数メソッドは、親クラスで宣言されるメソッドであり、サブクラスで実装する必要がありますが、抽象関数で宣言されていないメソッドはサブクラスのパブリック メソッドになります。サブクラス

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート