javaの書き換えと書き換え

3059 ワード

1.書き換えと書き換え
書き換え(Overriding):方法書き換えと呼ばれる方法で上書きし、書き換えの前提は継承(親と子の間で発生)であり、方法名、パラメータタイプ、戻り値タイプはすべて同じです。
例えば、人は中国人を含めて、人はいずれも話ができます。中国人は中国語が話せます。英語も話せます。この時、中国人という種類の人に対するsay()の方法は書き直します。
//  
public class Person {
    
   public void say(){ //     
       System.out.println("    ");
   }
   
   public void age(String name, int age){ //    
       System.out.println("  :"+ name + "  :"+ age);
   }
   
}
//  
public class ChinesePerson extends Person{
    
    public void say(){ //       
        System.out.println("            ");
    }
    
    public void age(String name, int age){ //      
        System.out.println("  :"+ name + "   :"+ age+ "      ");
    }
}
//    
public class MainTest {
    
    public static void main(String[] args){
        ChinesePerson chinesePerson = new ChinesePerson();
        chinesePerson.say(); 
        chinesePerson.age("  ", 24);
    }
}
出力:
中国人は中国語も話せます。英語の名前も話せます。王可年齢:24持参の書き換え
リロード(Overloading):同じクラスに複数の同名の方法が同時に存在し、異なるパラメータの個数またはタイプを持っています。戻り値の種類は同じでもいいです。
//    
public class TestOverLoading {
    
    public static void main(String[] args){
        TestOverLoading overLoading = new TestOverLoading();
        //     ,      
        overLoading.person(24);
        overLoading.person(25, "  ");
    }
    
    public void person(int age){  //      
        System.out.println("  :"+age);
    }
    
    public void person(int age, String name){ //     
        System.out.println("  :"+age +"   :"+name);
    }
   
}
出力:
年齢:24歳:25名前:王可
2.書き換えと重載の原則
書き換え:
パラメータリストは、書き換えられた方法と完全に同じでなければなりません。
戻りのタイプは、書き換えられた方法の戻りのタイプと完全に同じでなければならない。
サブ関数のアクセス修飾権限は、親タイプのより少なくてはいけません。
finalとして宣言する方法は書き換えられません。
ステートメントはstaticの方法で書き換えられませんが、再度声明されます。
子類と親類は同じカバンの中で、子類は父類のすべての方法を書き換えることができます。
子類と父類は同じカバンの中にいません。子類は父類の声明をpublicとprotectedの非final方法だけ書き換えることができます。
構造方法は書き換えられません。
書き換え方法は新しい検査異常を捨ててはいけません。あるいは書き換えられた方法よりもっと広い検査型異常を宣言します。例えば、父類の一つの方法は異常を検査するIOExceptionを声明しています。この方法を書き直す時、IOExceptionのサブクラス異常を捨てれば、非検査異常を捨てれます。
superキーワード:
親の中原にある方法を使うなら、superキーワードを使って、このキーワードは現在の種類の親を引用します。
//  
public class ChinesePerson extends Person{
    
    public void say(){ //       
        super.say();
        System.out.println("            ");
    }
    
    public void age(String name, int age){ //      
        System.out.println("  :"+ name + "   :"+ age+ "      ");
    }
}
出力:
中国人は中国語が話せます。英語の名前も話せます。王可年齢:24持参の書き換えです。
リロード:リロード方法はパラメータリストを変更しなければなりません。
リロード方法は、リターンタイプを変更することができます。
リロード方法は、異なるアクセス識別子を有することができる。
リロード方法は、新たな異常またはより広範な検査異常を宣言することができる。
方法は、同じクラスまたはサブクラスにおいて再負荷されることができる。
3.書き換えと重載の違い
書き換え:
親と子の間の多形表現は、親の関数を再定義します。
メソッド名、パラメータタイプ、戻り値タイプはすべて同じです。
リロード:
一つの種類の中の多形性の表現。
異なるパラメータの個数またはタイプは、同じでも良いし、異なることもあります。