ホームページ > php教程 > php手册 > PHPインターフェイスクラスと抽象クラスの実際の役割

PHPインターフェイスクラスと抽象クラスの実際の役割

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:20:43
オリジナル
834 人が閲覧しました

1.php インターフェースクラス: インターフェース
実際、それらの関数は非常に単純です。多くの人が一緒にプロジェクトを開発するとき、彼らは皆、他の人が書いたいくつかのクラスを呼び出すことがあります。その場合、どのようにしてそのメソッドの 1 つを知ることができるのかと疑問に思うでしょう。関数実装メソッドは名前付きですか? このとき、インターフェイス クラスを定義するときに、その中のメソッドは次のようなサブクラスによって実装される必要があります:

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


interface Shop
{
public function buy($gid)
public function sell ( $gid);
public function view($gid);
}


shop インターフェイス クラスを宣言し、buy、sell )、look (view) の 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 abstract class: abstract
実際、抽象クラスとインターフェースクラスは部分的に似ているのですが、この文は似ている部分を取り出したものです。抽象クラスの役割は、クラスの多くが常に繰り返し記述している多くのメソッドを使用していることがわかった場合、抽象クラスの使用を検討できることです。 「クラスを書き換えて、パブリック クラスごとに 1 つのパブリック クラスをインスタンス化し、同じメソッドを呼び出すことは可能ですか?」 ここではそれが可能です。実際、これは抽象クラスが行うことですが、インスタンスを作成する必要がなくなります。変換を使用すると、このクラスのメソッドを直接呼び出すのと同じくらい便利になり、このメソッドをオーバーロードすることもできます。例:

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


abstract class BaseShop
{
public function buy($gid )
{
echo('ID: '.$gid.' の製品を購入しました。');
}
public function sell($gid)
{
echo ('次の ID で商品を販売しました。');
}
public function view($gid)
{
echo('次の ID で商品を閲覧しましたID:' .$gid.'s');
}
}
クラス 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 インターフェイス クラスと抽象クラスについての私の謙虚な意見です。これら 2 つについて混乱している人に役立つことを願っています。何かコメントがあれば、メッセージを残してください。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート