ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向でのオーバーロードと書き換え

PHP オブジェクト指向でのオーバーロードと書き換え

高洛峰
高洛峰オリジナル
2017-02-18 16:44:36917ブラウズ

オーバーライドは親クラスとサブクラス間のポリモーフィズムの現れで​​あり、オーバーロードはクラス内のポリモーフィズムの現れで​​す。オーバーロードされたメソッドは戻り値の型を変更できます。つまり、オーバーロードの戻り値の型は同じでも異なっていても構いません。

オーバーロード

a. メソッドのオーバーロードは、クラスがさまざまな種類のデータを統一された方法で処理するための手段です。パラメータの数や種類が異なる、同じ名前の関数が複数同時に存在します。オーバーロードは、クラス内のポリモーフィズムの現れで​​す。

b. Java でのメソッドのオーバーロードとは、名前は同じですが、パラメーターと定義が異なる複数のメソッドを作成できることを意味します。メソッドを呼び出すときは、メソッドに渡されるパラメータの数と型に基づいて、どのメソッドを使用するかを決定します。これがポリモーフィズムです。

c. オーバーロードする場合、メソッド名は同じである必要がありますが、パラメーターの型と数値は異なり、戻り値の型は同じであっても異なっていても構いません。戻り値の型は、オーバーロードされた関数を区別するための基準として使用できません。

2. オーバーライド

a. 親クラスとサブクラス間のポリモーフィズム。親クラスの関数を再定義します。サブクラスで定義されたメソッドがその親クラスと同じ名前とパラメータを持つ場合、そのメソッドはオーバーライドされていると言います。 Java では、サブクラスは、同じメソッドを書き直すことなく、親クラスからメソッドを継承できます。ただし、サブクラスが親クラスのメソッドを変更せずに継承するのではなく、メソッドの書き換えが必要となる特定の変更を加えたい場合があります。メソッドのオーバーライドは、メソッドの上書きとも呼ばれます。

b. サブクラスのメソッドが親クラスのメソッドと同じメソッド名、戻り値の型、パラメーター リストを持つ場合、新しいメソッドは元のメソッドを上書きします。 **親クラスの元のメソッドが必要な場合は、現在のクラスの親クラスを参照する super キーワードを使用できます**。

c. サブクラス関数のアクセス変更権限は、親クラスのアクセス変更権限よりも低くすることはできません。

親クラスのメンバー メソッドの名前、戻り値の型、パラメーターの型、および数がまったく同じであるが、内部コードが同じである場合。 Java では、このような書き換え方法はメンバー メソッドのリファクタリングと呼ばれます。サブクラスは、親クラス メソッドの権限を再調整したり (ケチから寛大に)、親クラスの機能を拡張または再調整したりできます。青のサブクラスであり、青よりも優れています。開発プロセス中、プログラム開発者はサブクラスのこれらの機能を有効に活用する必要があります。しかし、別の観点から見ると、サブクラスの権限に一定の制限を課すことも必要です。必要に応じて、親クラスの特定のメソッドに対するアクセス許可を制御して、サブクラスによる悪用を防ぐ必要があります。

PHP オブジェクトのオーバーロードと書き換えに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

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