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