Java やその他の高レベルのオブジェクト指向プログラミング言語では、サブクラスは、同じメソッドを書き直すことなく、親クラスからメソッドを継承できます。ただし、サブクラスが親クラスのメソッドを変更せずに継承するのではなく、メソッドの書き換えが必要となる特定の変更を加えたい場合があります。メソッドの書き換えはメソッドの上書きとも呼ばれます。 1. メソッドのオーバーライド (Override)
Java でのクラスの継承機能について説明します。サブクラスが親クラスを継承すると、親クラスの非プライベート属性 (メソッドと変数) をサブクラスに追加できます。同時に、親クラスのメソッドを拡張して独自の機能を拡張できます。これはオーバーライドと呼ばれ、オーバーライドまたはオーバーライドとも呼ばれます。いわゆるメソッドの書き換えとは、サブクラスのメソッドと、親クラスから継承したメソッドが、メソッド名、戻り値の型、メソッドの引数の数、引数の型が全く同じである場合にのみメソッドと呼ぶことができます。書き直し。
コードリフレクション:// 这是父类的定义 public class Person { public void eat() { System.out.println("=====这是父类Person的eat方法======="); } } // 这是子类的定义 public class Student extends Person { @Override public void eat() { System.out.println("===这是子类Student的eat方法==="); } // main方法测试 public static void main(String[] args) { Student student = new Student(); student.eat(); //输出:===这是子类Student的eat方法=== } }
書き換えルール:
メソッドを書き換えるときは、次のルールに従う必要があります: (1) サブクラス メソッドのパラメータ リストは、サブクラス メソッドのパラメータ リストが書き換えられるものと同じである必要があります。親クラス メソッドのパラメータ リスト (パラメータの数とパラメータの型) が同じです。そうでない場合は、メソッドのオーバーロードのみが実現されます。
(2) サブクラスのメソッドの戻り値の型は、親クラスでオーバーライドされたメソッドの戻り値の型と同じである必要があります。そうでない場合は、メソッドのオーバーロードのみが実現されます。
(3) Java では、サブクラスのメソッドのアクセス権は、親クラスのオーバーライドされたメソッドのアクセス権未満にすることはできず、親クラスのアクセス権以上でなければなりません。
(4) 書き換え処理中に、親クラスのオーバーライドされたメソッドが例外をスローすると、サブクラスのメソッドも例外をスローします。ただし、スローされる例外には特定の制約があります。---> サブクラスは、親クラスよりも多くの例外をスローすることはできません。親クラスよりも小さい例外のみをスローするか、例外をスローできません。たとえば、親クラスのメソッドが Exception をスローする場合、サブクラスは IOException または Exception より小さい例外のみをスローするか、例外をスローしません。
以上がJava でのメソッドのオーバーライドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。