ホームページ  >  記事  >  Java  >  JAVAメソッドのオーバーロードとオーバーライド

JAVAメソッドのオーバーロードとオーバーライド

PHP中文网
PHP中文网オリジナル
2017-06-22 14:25:221332ブラウズ

メソッドのオーバーロード: (同じ関数を実装するために使用されますが、異なるユーザーを満たすために異なるパラメーターが必要です) 同じクラス内。

は、同じ名前、同じまたは異なる戻り値を持つ、異なるパラメーター (パラメーターの数またはパラメーターの型) を持つ複数のメソッドを 1 つのクラス内に定義できることを意味します。呼び出すときは、ユーザーが API を使用するのに簡単で便利なオーバーロードを使用します。同じ機能を持つメソッドに異なる名前を付ける必要がないため、ユーザーにとっては同じことを行うことは同じ関数を呼び出すことと同じであり、便利です。コンストラクターはオーバーロードすることもできます。プログラムが独自の構築メソッドを定義している限り、システムはデフォルトの構築メソッドを提供しません。

メソッドの上書き (書き換え): (サブクラスが親クラスのメソッドを別のクラスでオーバーライドする)

メソッドのオーバーライド (オーバーライド/上書き)

オーバーロードとの違い: メソッドのオーバーロード 1 つのメソッド内に複数の関数を定義することです。同じ名前と同じ戻り値の型を持つクラスですが、パラメーターが異なります

メソッドをオーバーライドする場合: 親クラスの関数をコピーするのが最善です

1。サブクラスでは、必要に応じてベースから関数をコピーできます。クラス内の継承されたメソッドをオーバーライドします。

2. オーバーライドされたメソッドは、オーバーライドされたメソッドと同じメソッド名、パラメーター リスト、戻り値の型を持つ必要があります。

3. オーバーライドするメソッドは、オーバーライドされるメソッドよりも制限の厳しいアクセス許可を使用できません。

プライベート>デフォルト>プロテクト>パブリックの厳密な順序。これはポリモーフィズムに関連しており、ポリモーフィズムについて話すとさらに理解できるでしょう。親クラスによって特定の場所が変更された場合、親クラスのメソッドを呼び出すことができます。サブクラスがこのメソッドに対してより厳密なアクセス権を持っている場合、サブクラスを渡すときにアクセスできなくなる可能性があります

Java のポリモーフィズム: オーバーロード + 上書き

質問: Java ではポリモーフィズムを実現するためにどのようなメカニズムが使用されていますか?

ポリモーフィズムは Java のオブジェクト指向機能の 1 つであり、Java ではオーバーロードと上書きを通じてポリモーフィズムのさまざまな表現が実現されます。しかし、両者には違いがあります。

1) オーバーロード

Java におけるメソッドのオーバーロードとは、名前は同じですが、引数の列 (パラメーターの型と数) と定義が異なる複数のメソッドを作成できることを意味します。戻り値の型は同じでも異なっていても構いませんが、オーバーロードされた関数は戻り値の違いだけでは区別できません。メソッドを呼び出すとき、パラメータ リストを使用してどのメソッドを呼び出すかが決定されます。オーバーロードは、クラス内のポリモーフィズムの現れで​​す。

2) オーバーライド

Java では、サブクラスは同じメソッドを書き換えることなく、デフォルトで親クラスからメソッドを継承できますが、場合によっては、サブクラスが親クラスのメソッドをそのまま継承したくない場合もあります。変更は、メソッドをオーバーライドする (上書きとも呼ばれます) ことによって実現されます。 Java における上書きとは、親クラスの同じ名前の関数の実装部分をサブクラスで変更するが、親クラスのメソッドのメソッド名、戻り値の型、パラメータのリストは一貫したままにすることを指します。つまり、サブクラスは親クラスの関数を再定義し、サブクラスの新しいメソッドは親クラスの元のメソッドを上書きします。オーバーライドは、親クラスとサブクラス間の多態性式です。

以上がJAVAメソッドのオーバーロードとオーバーライドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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