オーバーロード: メソッド名は同じですが、パラメーターは異なる必要があります (パラメーターが異なると、型、順序、数値が異なる場合があります)。オーバーライド (上書きとも呼ばれます): サブクラスは親クラスのメソッドを継承し、そのメソッドを再実装します。
メソッド書き換えを使用する際の注意事項:
1. メソッドを書き換える場合は、継承関係が必要です。
2. メソッドを書き換える場合は、メソッド名と仮パラメータが一致している必要があります。
3. メソッドを書き換える場合、サブクラスの権限修飾子は親クラスの権限修飾子以上である必要があります。
4. メソッドを書き換える場合、サブクラスの戻り値の型は親クラスの戻り値の型以下でなければなりません
5. メソッドを書き換える場合、サブクラスの例外の型は以下である必要があります親クラスの例外タイプに。
ここでは主に 3 番目のポイントを使用してテストします:
public class a{ public static class People { public void fun(){}; } static class Student extends People { protected void fun(){ System.out.println("dfdfd"); } } public static void main(String[] args){ Student p = new Student(); p.fun(); } }
図に示すように、コンパイル時にエラーが報告されます:
その理由は、親クラスのメソッドの権限が public であるためです。 、サブクラスは protected に変更され、許可が減少するため、以下の値以上のみにすることができます:
public class a{ public static class People { protected void fun(){}; } static class Student extends People { public void fun(){ System.out.println("dfdfd"); } } public static void main(String[] args){ Student p = new Student(); p.fun(); } }
正常に実行