Javaでのメソッドの書き換えとオーバーロードの違い

伊谢尔伦
リリース: 2016-11-21 15:02:50
オリジナル
1481 人が閲覧しました

オーバーロード: メソッド名は同じですが、パラメーターは異なる必要があります (パラメーターが異なると、型、順序、数値が異なる場合があります)。オーバーライド (上書きとも呼ばれます): サブクラスは親クラスのメソッドを継承し、そのメソッドを再実装します。

メソッド書き換えを使用する際の注意事項:
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();
         }
}
ログイン後にコピー

図に示すように、コンパイル時にエラーが報告されます:

Javaでのメソッドの書き換えとオーバーロードの違い

その理由は、親クラスのメソッドの権限が 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();
         }
}
ログイン後にコピー

正常に実行

Javaでのメソッドの書き換えとオーバーロードの違い

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート