ホームページ  >  記事  >  バックエンド開発  >  PHP継承におけるメソッドのオーバーロード(上書き)の適用場面、PHPオーバーロード_PHPチュートリアル

PHP継承におけるメソッドのオーバーロード(上書き)の適用場面、PHPオーバーロード_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:07:32972ブラウズ

PHP継承、PHPオーバーロードにおけるメソッドのオーバーロード(上書き)の応用場面

この記事では、PHP 継承におけるメソッドのオーバーロード (上書き) の適用シナリオを分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

メソッドのオーバーロード (オーバーライド)/上書き - どのような状況で使用されるか: すべてのサブクラスがメソッドを使用する必要があることを親クラスが知っているが、親クラスがこのメソッドの記述方法を知らない場合、メソッドが必要になります。現時点では、サブクラスでこのメソッドをオーバーライドすることができます。

人気のある例 - 親クラス (動物) は、そのサブクラス (猫と犬) が吠えることを知っていますが、その鳴き声は異なるため、親クラスはこのメソッドを作成できず、サブクラス (猫と犬) にのみ定義させることができます。 。コードは次のとおりです:

リーリー

メソッドのオーバーロード/オーバーライドのキーポイントと詳細 (少し読みにくいです):

1. サブクラスメソッドのメソッド名とパラメータリストは、親クラスメソッドとまったく同じである必要があります。たとえば、例のcry()はパラメータを追加できないため、cry($naaa)などに変更します。注: ここではパラメータ名が同じである必要はありませんが、パラメータの数は同じである必要があります。
2. いわゆるオーバーロードまたは上書きは、親クラスのメソッドを上書きすることを意味するものではありません。これは、次のように理解することもできます。サブクラスがこのメソッドを呼び出し、そのメソッド自体のクラスでこのメソッドが見つからない場合、そのようなメソッドがあるかどうかを確認するために親クラスに移動します。これもポリモーフィックな理解です
3. サブクラスのメソッドが親クラスの同名のメソッドの内容を継承したい場合は、親::メソッド名または親クラス名::メソッド名を使用して継承できます。サブクラスによって定義されたメソッド内で使用されます。
4. アクセス許可の問題。サブクラスのアクセス スコープ >= 親クラスのアクセス スコープ。つまり、親クラスが保護された関数 cry() の場合、サブクラスは保護またはパブリックのみにできます。

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/955401.html技術記事 PHP の継承におけるメソッドのオーバーロード (上書き) の適用場面 PHP のオーバーロード この記事では、PHP の継承におけるメソッドのオーバーロード (上書き) の適用場面を分析します。参考のためにみんなで共有してください。詳細な分析...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。