ホームページ  >  記事  >  バックエンド開発  >  PHP オブジェクト指向の抽象クラスとは何ですか?そして抽象クラスの役割

PHP オブジェクト指向の抽象クラスとは何ですか?そして抽象クラスの役割

巴扎黑
巴扎黑オリジナル
2017-04-17 14:39:062075ブラウズ

この記事では、抽象クラスとは何か、その使い方の概要を紹介します。

抽象クラスとは何ですか?

抽象クラスはインスタンス化できず、同じメソッドは特定の実装なしでメソッド宣言のみを提供します。抽象クラスは、他のクラスの親クラスとしてのみ使用できます。抽象クラスは、abstract キーワードを使用して宣言され、構文形式は次のとおりです。

abstract class AbstractName{
.....
}

注:

抽象クラスは通常のクラスと似ており、両方ともメンバー変数とメンバー メソッドを持ちます。しかし、違いがあります。抽象メソッドを含むクラスは、それ自体が抽象でなければなりません。抽象メソッドにはメソッド本体がなく、その関数はサブクラス内でのみ完了できます。抽象メソッドは、abstract キーワードを使用して変更することもできます。形式は次のとおりです。

abstract function abstractName();

抽象メソッドの後には、中かっこ "{}" の代わりにセミコロンが続きます。

抽象クラスの役割は何ですか?

クラスの中には繰り返し記述されるクラスが多く、この時、抽象クラスの概念を利用してパブリッククラスを記述し、インスタンス化後に繰り返し呼び出すことができます。抽象クラスは、多くのものが入っている大きな倉庫のようなもので、必要なときにその倉庫内のすべてを使用する必要はありません。倉庫内のアイテムに不満を感じた場合は、自分で新しいアイテムを作成することもできます。

抽象メソッドと抽象クラスは、主に複雑なクラス階層で使用されます。この階層関係は、各サブクラスに特定のメソッドが含まれ、オーバーロードされるようにする必要があります。これは、インターフェイスを通じても実現できます。

抽象クラスの例の説明:

<?php
header("content-type:text/html;charset=utf-8");
abstract class Member{
abstract function vipMember($name,$level,$money);
}
class Member1 extends Member{
function vipMember($name,$level,$money){
echo "您在PHP中文网的会员名是:" . $name;
echo &#39;<br/>&#39;;
echo "您的会员等级是:" . $level;
echo &#39;<br/>&#39;;
echo "您发文章赚取的钱是:" . $money;
}
}
class Member2 extends Member{
function vipMember($name,$level,$money){
echo "您在PHP中文网的会员名是:" . $name;
echo &#39;<br/>&#39;;
echo "您的会员等级是:" . $level;
echo &#39;<br/>&#39;;
echo "您要提取" . $money . "元";
}
}
$member1 = new Member1();
$member2 = new Member2();
$member1->vipMember(&#39;大白&#39;,&#39;三级&#39;,&#39;24.35&#39;);
echo &#39;<br/>&#39;;
echo &#39;<hr/>&#39;;
$member2->vipMember(&#39;小明&#39;,&#39;五级&#39;,&#39;84.73&#39;);

まず、抽象メソッド vipMember を含むメンバー抽象クラスを作成します。抽象クラスに対して 2 つのサブクラス Member1 と Member2 を生成し、2 つのサブクラスにそれぞれ抽象メソッドを実装します。最後に、2 つのオブジェクトをインスタンス化し、実装された抽象メソッドを呼び出し、最後に出力します。

以上がPHP オブジェクト指向の抽象クラスとは何ですか?そして抽象クラスの役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。