ホームページ > バックエンド開発 > PHPチュートリアル > php学習メモ - オブジェクト指向(4)継承補足

php学習メモ - オブジェクト指向(4)継承補足

WBOY
リリース: 2016-07-29 08:59:43
オリジナル
852 人が閲覧しました

新しいオブジェクトが作成されるたびに__constructメソッドが最初に実行されると前述しましたが、継承する場合は、親クラスの_constructメソッドが最初に実行され、次にサブクラスの__constructメソッドが実行されるべきですか?
実験してみましょう:

<code><span><span>class</span><span>Father</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>"father has constructed"</span>;
    }
}
<span><span>class</span><span>Child</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>"child has constructed"</span>;
    }
}
<span>$c</span> = <span>new</span> Child();
</code>
ログイン後にコピー

出力結果は次のとおりです:
子供が組み立てました
サブクラスの作成時に親クラスの __construct メソッドが呼び出されないことがわかります。これは、PHP の上書きメカニズムを使用していることがわかります。実際には、サブクラスのコンストラクターがオーバーライドされています。クラスが実行され、サブクラスのコンストラクターが実行されます。
では、サブクラスが __construct メソッドを記述しない場合はどうなるのでしょうか?実験してみましょう:

<code><span><span>class</span><span>Father</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>"father has constructed"</span>;
    }
}
<span><span>class</span><span>Child</span>{</span><span>public</span><span><span>function</span><span>show</span><span>()</span>{</span><span>echo</span><span>"dd"</span>;
    }
}
<span>$c</span> = <span>new</span> Child();
<span>$c</span>->show();

输出结果为:dd</code>
ログイン後にコピー

;

出力結果は次のとおりです: dd
これは、親クラスの __construct() が継承されていないことを意味します。

')​​.addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上、PHP学習メモのオブジェクト指向(4)継承の補足を内容も含めて紹介しましたので、PHPチュートリアルに興味のある友人の参考になれば幸いです。

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