1. 程式人生 > >Java學習筆記二十二:Java的方法重寫

Java學習筆記二十二:Java的方法重寫

nim 技術分享 例子 system family AC tro pack 不能

Java的方法重寫

一:什麽是方法的重寫;

  如果子類對繼承父類的方法不滿意,是可以重寫父類繼承的方法的,當調用方法時會優先調用子類的方法。

語法規則

  返回值類型、方法名、參數類型及個數都要與父類繼承的方法相同,才叫方法的重寫

方法重寫是指:子類中定義一個方法,並且這個方法的名字、返回值類型、參數個數和類型與從父類繼承的方法完全相同。

方法的重寫必須滿足以下要求(從方法的五要素來分析):
(1)要有繼承;
(2)方法名,參數列表要相同;
(3)訪問修飾符不能比父類窄;
也就是說,父類的public方法在重寫時,訪問修飾符必須是public,因為public的範圍最大,否則就不構成方法的重寫,例如:對於父類protected的方法,在重寫時可以用protected或public來修飾。


(4)拋出的異常不能比父類更寬泛;
(5)返回類型要比父類的小或相同。
只有滿足以上五個要求才符合方法的重寫

二:舉一個例子;

Animal類:

package com.test;

public class Animal {
    public int age;
    public void eat(){
        System.out.println("年齡"+age+"動物是可以吃東西的");
        //這裏的父類只是描述動物可以吃東西
    }

}

Dog類:

package com.test;

public class Dog extends
Animal{ }

如果我們對父類的eat方法不滿意,就可以重寫eat方法

Dog類:

package com.test;

public class Dog extends Animal{
    public void eat(){
        System.out.println("年齡"+age+"狗是可以吃東西的");
        //這裏的子類描述了狗可以吃東西
    }

}

主函數InitailClass類:

package com.test;

public class InitailClass {

    public static void
main(String[] args) { Dog d = new Dog(); d.age = 10; d.eat(); } }

運行結果為:

技術分享圖片

三:方法重寫和方法重載的區別;

  方法重載:就是在同一個類中,方法的名字相同,但參數個數、參數的類型或返回值類型不同!
  方法重寫:它是指子類和父類的關系,子類重寫了父類的方法,但方法名、參數類型、參數個數必須相同!

Java學習筆記二十二:Java的方法重寫