1。メソッドオーバーロード
メソッド名は同じですが、パラメーターは異なり、これは過負荷です。
いわゆる異なるパラメーターには2つの主要なポイントがあります。1つ目は、パラメーターの数が異なること、2つ目はパラメーターのタイプが異なることです。これら2つの側面のいずれかが異なる限り、それはこの方法の過負荷を構成することができます。
パッケージcn.galc.test; public class testoverload {void max(int a、int b){system.out.println(a> b?a:b); } / * * int max(int a、int b){ * a> b? A:B; *} */ void max(float a、float b){system.out.println(a> b?a:b); }}ここでは、void modifierを使用した2つの最大メソッドの名前は同じですが、パラメータータイプは異なるため、過負荷を構成できます。 int max(int a、int b)メソッドとvoid max(int a、int b)メソッドは過負荷を構成しません。現在、それらは2つのメソッドを重複しています。クラス内の2つのメソッドを重複して宣言することは許可されておらず、コンピレーションにエラーが発生します。メソッド名は同じで、パラメータータイプは同じです。返品値のみが異なります。この方法でこの方法を呼び出すことができるため、これは過負荷を構成するものではありません。メソッドを呼び出すときは使用できません。したがって、これらの2つの方法を呼び出すと、整数数が渡されます。両方のメソッドには同じ名前と同じパラメータータイプがあるため、コンパイラはどのメソッドを呼び出すかを区別できません。深いレベルの過負荷の理由:これら2つの方法のコンパイラがそれらを区別し、呼び出すときにどのようなものを呼び出すかを知ることができる限り、混乱はありません、これら2つの方法は過負荷を構成します。
次の2つの方法を見てみましょう。
int max(int a、int b){system.out.println( "the int max(int a、int b)メソッド"); a> bを返しますか? a:b;} int max(short a、short b){system.out.println( "int max(short a、short b)メソッドと呼ばれるメソッド"); a> bを返しますか? A:b;}これらの2つの方法は、コンパイラが整数を見るとすぐにINTタイプとして扱うため、過負荷を構成することもできます。したがって、整数を渡すとき、コンパイラは最初にメソッドmax(int a、int b)を呼び出します。メソッドmax(short a、short b)を呼び出したい場合は、次のようなメインメソッドに記述する必要があります。
public static void main(string [] args){testoverload t = new testOverload(); T.max(3,4); //メソッドmax(int a、int b)はshort a = 3と呼ばれます。短いb = 4; T.max(a、b); //メソッドmax(short a、short b)はここで呼び出されます。 }2。建設方法の過負荷
通常の方法と同様に、コンストラクターも過負荷になります
パッケージcn.galc.test; public class person {int id; int age; / *** constructor*/ public person(){id = 0;年齢= 20; } / ***コンストラクターオーバーロード1* @param i* / public Person(int i){id = i;年齢= 20; } / ** *コンストラクターTwo * @Param I * @Param J * / Public Person(int i、int j){id = i;年齢= j; }}上記は、Javaメソッドの過負荷の詳細な説明です。みんなの学習に役立つことを願っています。