Java でのメソッドのオーバーライド

巴扎黑
リリース: 2017-04-17 10:45:08
オリジナル
2138 人が閲覧しました

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方法===
   }
}
ログイン後にコピー

サブクラスが親クラスのメソッドをオーバーライドした後、サブクラスをインスタンス化すると、サブクラスのメソッドが呼び出され、親クラスのメソッドは上書きされました。サブクラスで親クラスのメソッドを呼び出す必要がある場合は、サブクラス メソッドで super キーワードを使用して親クラスのメソッドを呼び出します。形式は、親クラスのメソッド名 (パラメーター リスト) です。



書き換えルール:

メソッドを書き換えるときは、次のルールに従う必要があります: (1) サブクラス メソッドのパラメータ リストは、サブクラス メソッドのパラメータ リストが書き換えられるものと同じである必要があります。親クラス メソッドのパラメータ リスト (パラメータの数とパラメータの型) が同じです。そうでない場合は、メソッドのオーバーロードのみが実現されます。

(2) サブクラスのメソッドの戻り値の型は、親クラスでオーバーライドされたメソッドの戻り値の型と同じである必要があります。そうでない場合は、メソッドのオーバーロードのみが実現されます。

(3) Java では、サブクラスのメソッドのアクセス権は、親クラスのオーバーライドされたメソッドのアクセス権未満にすることはできず、親クラスのアクセス権以上でなければなりません。

(4) 書き換え処理中に、親クラスのオーバーライドされたメソッドが例外をスローすると、サブクラスのメソッドも例外をスローします。ただし、スローされる例外には特定の制約があります。---> サブクラスは、親クラスよりも多くの例外をスローすることはできません。親クラスよりも小さい例外のみをスローするか、例外をスローできません。たとえば、親クラスのメソッドが Exception をスローする場合、サブクラスは IOException または Exception より小さい例外のみをスローするか、例外をスローしません。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!