過負荷と過負荷
過負荷と過負荷
overloadingとoverridingは名前が似ているので混同されていますが、違いは肯定的です!overloading(リロード):新しいメソッドの定義(new)-X を継承して関連付けるoverriding(上書き):祖先クラスから継承されたメソッドの内容を変更(change,modify)-O を継承して関連付けます.
過負荷とは?クラスで複数の同名メソッドを定義 かふかじょうけんメソッド名は同じでなければなりません. パラメータの数またはタイプは異なる必要があります. 戻りタイプは関係ありません. 正しい例)順序が異なっていてもオーバーロードを認める
親から継承するメソッドの内容を変更します.
上書き条件
メソッドの宣言子(メソッド名、パラメータ、戻りタイプ)は、新しいメソッドのコンテンツのみであるため、祖先のコンテンツと完全に一致する必要があります.ただし、アクセス制御者や例外は限られた条件で変更できます!
アクセス制御者は、祖先クラスメソッドよりも狭い範囲に変更できません.
祖先クラスで定義されたメソッドのアクセス制御者が保護されている場合、メソッドのサブクラスを上書きするメソッドは、アクセス制御者によって保護または公開される必要があります.ほとんどのアクセス制御者は、同じ範囲を使用しています.
アクセス制御範囲:public>protected>(default)>private
祖先クラスメソッドよりも数が多い例外は宣言できません.
宣言子は、祖先クラスのメソッドと一致する必要があります. アクセス制御者を祖先クラスメソッドよりも小さい範囲に変更することはできません. 例外は、親メソッドよりも多く宣言できません.
overloadingとoverridingは名前が似ているので混同されていますが、違いは肯定的です!
過負荷とは?
long add(int a, long b) { return a+b; }
long add(long a, int b) { return a+b; }
エラー例)戻りタイプが異なる場合のみ過負荷ではありません.int add(int a, int b) { return a+b; }
long add(int a, int b) { return (long)(a+b); }
エラー例)パラメータの数や種類が同じ場合は、オーバーロードされません.int add(int a, int b) { return a+b; }
int add(int x, int y) { return x+y; }
誇張とは何ですか.親から継承するメソッドの内容を変更します.
上書き条件
メソッドの宣言子(メソッド名、パラメータ、戻りタイプ)は、新しいメソッドのコンテンツのみであるため、祖先のコンテンツと完全に一致する必要があります.ただし、アクセス制御者や例外は限られた条件で変更できます!
アクセス制御者は、祖先クラスメソッドよりも狭い範囲に変更できません.
祖先クラスで定義されたメソッドのアクセス制御者が保護されている場合、メソッドのサブクラスを上書きするメソッドは、アクセス制御者によって保護または公開される必要があります.ほとんどのアクセス制御者は、同じ範囲を使用しています.
アクセス制御範囲:public>protected>(default)>private
祖先クラスメソッドよりも数が多い例外は宣言できません.
class Parent {
void parentMethod() throws IOException, SQLException { // 예외 2개 선언
}
}
class Child extends Parent {
void parentMethod() throws IOException { // 예외 1개 선언
}
}
オーバレイの定理Reference
この問題について(過負荷と過負荷), 我々は、より多くの情報をここで見つけました https://velog.io/@tyjk8997/오버로딩의-조건テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol