セクション 10 -- 抽象メソッドと抽象クラス_PHP チュートリアル

WBOY
リリース: 2016-07-21 16:01:05
オリジナル
728 人が閲覧しました

/*
+---------------------------------------------- -- ----------------------------------+
| = この記事は Haohappy<> ; = 章のクラスとオブジェクトのメモ
| = 不必要なトラブルを避けるため、転載はご遠慮ください
|すべての PHP 愛好家が一緒に進歩することを願っています
| = PHP5 Research Center: http://blog.csdn.net/haohappy2004
+--------- ------ -------------------------------------------- ------ ---+
*/
セクション 10 -- 抽象メソッドと抽象クラス
オブジェクト指向プログラムは、クラスの階層構造を通じて構築されます。PHP などの単一継承言語では、クラスの継承が行われます。ルートクラスには 1 つまたは複数のサブクラスがあり、各サブクラスは 1 つまたは複数の下位レベルのサブクラスを継承します。適切に設計されたシステムでは、それぞれのルート クラスが異なる機能を実装することがあります。アプリケーション コードがルート クラスで動作するように設計されている場合、
抽象メソッドは、 のようなプレースホルダーです。サブクラス内の一般メソッド (場所を占めますが機能しません)。これは一般メソッドとは異なります。クラス内に 1 つ以上の抽象メソッドがある場合、このクラスは になります。抽象クラスをインスタンス化することはできません。抽象クラスを継承してからサブクラスをインスタンス化する必要があります。すべての抽象メソッドをオーバーライドすると、サブクラスは通常のクラスになります。オーバーライドされていない場合、サブクラスは抽象メソッドのままです。クラスに抽象メソッドが含まれている場合は (たとえ 1 つしか存在しない場合でも)、クラス内でキーワードの前に抽象メソッドを宣言する構文を使用する必要があります。一般的なメソッドの宣言とは異なります。抽象メソッドには、一般的なメソッドのように中括弧 {} で囲まれた本体がなく、セミコロン; で終わります。
例 6.13 では、 getArea メソッドを含むクラス Shape を定義しました。しかし、形状が分からなければ図形の面積を決定することは不可能であるため、getArea メソッドを抽象メソッドとして宣言しました。ただし、Shape オブジェクトをインスタンス化することはできますが、それを継承したり、式で使用したりすることはできます。例 6.13 で説明します。
抽象メソッドのみを含むクラスを作成する場合、PHP にはインターフェイスがあり、Word のキーを実装します。たとえば、myClass を実装して myIterface を作成することもできます。
/ *注:
2 つのメソッドは次のとおりです。
1. } (aaa には抽象メソッドのみがあり、一般メソッドはないことに注意してください)
class bbb extends aaa{} (bbb の aaa の抽象メソッドをオーバーライドします)
2. インターフェース aaa{}
class bbbimplements aaa{} ( bbb の aaa の抽象メソッド)
*/
リスト 6.13 抽象クラス



コードをコピーします

コードは次のとおりです:
//抽象ルートクラス 抽象ルートクラス
抽象クラス Shape
{
function getArea(); //抽象メソッドを定義する
}
//抽象子クラス 抽象サブクラス
抽象クラス Polygon extends Shape //ポリゴン{abstract getnumberofsides(); public getarea-&gt; // concrete class circle {
public $ radius
$myCollection = array(); // 図形のコレクションを作成し、それを配列に入れます
$r = new Rectangle;
$r-> height = 7 ;
$myCollection[] = $r;
//三角形を作成します
$t->base = 4; = 5;
$myCollection[] = $t;
unset($t);
$c = 新しい円
$myCollection[] = $c; ;
unset ($c);
$c = 新しい色
$myCollection[] = $c; foreach($ myCollection as $s) {
if($sinstanceof Shape) //$s が Shape クラスのインスタンスの場合
{ print("Area: " . $s->getArea() . "< br> n");
}
if($s instanceof Polygon)
{
print("Sides: " .
$s->getNumberOfS ides() . .
?>




http://www.bkjia.com/PHPjc/316938.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/316938.html

技術記事

/* +---------------------------------------------- --- ---------------------------------+ |=この記事は、CorePHP プログラミングの ClassesandObjects の章からの Haohappy のメモです。 |=|= メイン + 個人的な翻訳...





関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!