多くの人がインターフェースと抽象クラスの違いを理解していません!私の理解を共有しましょう!
1.php インターフェイス クラス: インターフェイス
実際、多くの人が一緒にプロジェクトを開発する場合、全員が他の人が作成したクラスを呼び出すことになります。ある関数の実装メソッドに名前を付ける方法を教えてください。このとき、インターフェイス クラスを定義するときに、その内部のメソッドは次のように実装する必要があります。 :
クリップボードにコピー引用コンテンツ: [www.bkjia.com]
インターフェイスショップ
{
パブリック関数 buy($gid);
パブリック関数 view($gid);
ショップ インターフェイス クラスを宣言し、buy、sell、view の 3 つのメソッドを定義します。次に、このクラスを継承するすべてのサブクラスは、これらの 3 つのメソッドのいずれかを実装する必要があります。サブクラスがこれらの単語を実装していない場合、そのクラスは実行できません。実際、インターフェイス クラスは、端的に言えば、クラスのテンプレートであり、クラスの規則です。このカテゴリに属する場合は、どのような方法であっても、私の規則に従わなければなりません。それをどうするかはあなた次第です。
クリップボードにコピー引用コンテンツ: [www.bkjia.com]
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 抽象クラス: 抽象
実は、この文をどこで見たか覚えていますが、抽象クラスは似ている部分を抜き出したものですが、実はそれが分かります。抽象クラスの役割は、多くのクラスが常に繰り返し記述している多くのメソッドを使用していることがわかった場合に、抽象クラスの使用を検討できることです。「クラスを書き換えることはできない。」パブリック クラスごとに、このパブリック クラスをインスタンス化し、同じメソッドを呼び出します。」 これは可能です。実際、これは抽象クラスの動作ですが、インスタンス化する必要がなくなります。この手順により、メソッドを呼び出すのと同じくらい便利になります。このクラスのメソッドを直接オーバーロードすることもできます。このメソッドをオーバーロードすることもできます。例:
結論: 抽象クラスはクラスのサービスプロバイダーです。サービスを提供しないことに不満がある場合は、それらを使用する必要はありません。あなた自身。
上記は、PHP インターフェイス クラスと抽象クラスについての私の謙虚な意見です。これら 2 つについて混乱している友人に役立つことを願っています。コメントがあれば、メッセージを残してください。
転載元: http://www.cnblogs.com/200831856/
を開発するときの役割は非常に簡単です。