在Java開發(fā)中,經(jīng)常會用到重寫和重載兩個概念,它們是Java面向?qū)ο缶幊讨械闹匾R點。
重寫(Override):在子類中是否重新定義父類的方法,方法名稱和參數(shù)都要一致,返回類型和異常類型可以不一致,重寫方法的訪問修飾符一定要大于等于父類方法的訪問修飾符。
class Animal{ public void move(){ System.out.println("動物可以移動"); } } class Dog extends Animal{ public void move(){ System.out.println("狗可以跑和走"); } }
重載(Overload):在同一個類中方法名稱一樣,但是參數(shù)個數(shù)或參數(shù)類型不一樣,返回類型和訪問修飾符可以不同。即,同一類中方法名稱相同,但各自的參數(shù)不同,這些參數(shù)的類型或個數(shù)不同,會根據(jù)參數(shù)的不同去調(diào)用相應(yīng)的方法。
class Calculator{ public int add(int a, int b){ return a + b; } public int add(int a, int b, int c){ return a + b + c; } }
重寫的方法是為了實現(xiàn)動態(tài)綁定,即在運行時根據(jù)對象類型來確定具體調(diào)用哪一個方法。而重載可以方便地對方法進行擴展,增強方法的能力,使得代碼更加靈活實用。