父類:
//-定義一個父類--鳥類Birds: public class Birds{ //-定義父類鳥類Birds的fly()方法 public void fly(){ System.out.println("我可以自由飛翔!"); } }
子類:
//-定義一個子類--鴕鳥類(Ostrich),繼承父類--鳥類Birds: public class Ostrich extends Birds{ //-重寫父類Birds的方法fly() public void fly(){ System.out.println("我只能在地上奔跑!"); } public static void main(String[] agrs){ //-調用重寫后子類Ostrich的fly()方法 Ostrich o=new Ostrich(); o.fly(); //-調用重寫前父類Birds的fly()方法 //-方法1: Birds b=new Birds(); b.fly(); //-方法2: o.getSuper(); } //-用super顯式調用父類Birds的fly()方法 public void getSuper(){ super.fly(); } }
運行結果:
子類重寫父類注意事項:遵循:”兩同、兩小、一大“原則
1、兩同:方法名相同,形參列表相同
2、兩小:子類方法返回值類型比父類方法返回值類型更小或相等,子類方法聲明拋出的異常類比父類方法聲明拋出的異常類更小或相等
3、一大:子類方法訪問權限比父類方法訪問權限更大或相等
4、特別注意的是:覆蓋的方法和被覆蓋的方法,要么都是類方法,要么都是實例方法,不能一個是類方法,一個是實例方法,否則會發生編譯錯誤