子類覆蓋父類要遵循“兩同兩小一大”
“兩同”即方法名相同,形參列表相同
“兩小”指的是子類方法返回值類型應比父類方法返回值類型更小或相等,子類方法聲明拋出的異常類應比父類方法聲明拋出的異常類更小或相等。
(注:看到有網友有這樣的疑問,父類方法返回值是double,子類修改成int為什么不行呢?
這是因為返回值類型更大或者更小,是對於同一類型而言的。也就是說,返回值的類型需要有繼承關系才去考慮大小這個 概念。類型不同,肯定不是方法重寫)
“一大”指的是子類方法的訪問權限應比父類方法的訪問權限更大或相等。
注意:覆蓋方法和被覆蓋方法要么都是類方法,要么都是實例方法,不能一個是類方法一個是實例方法,否則編譯出錯。