方法的重寫:子父類出現了一模一樣的方法
注意:返回值型別可以是子父類
子類根據需求對從父類繼承的方法進行重新編寫
重寫時,可以用super.方法的方式來保留父類的方法
構造方法不能被重寫
在繼承的情況下,子類的方法滿足以下條件:
1、方法名相同
2、引數列表相同
3、返回值型別相同,或者是父類返回值型別的子類
4、訪問修飾符的許可權不能小於父類
5、丟擲的異常不能大於父類(嚴於)
區別:
練習:使用方法重寫優化電子寵物系統,實現如下效果
;}多型是同乙個引用型別,使用不同的例項而執行不同操作,即同一種事物,由於條件不同,產生的結果也不同
使用多型的條件:頻繁修改**,**可擴充套件性、可維護性差,這種情況下,可使用多型優化
示例:
public
class
dogextends
pet}
}public
class
penguin
extends
pet}
}
抽象方法:
抽象方法沒有方法體
抽象方法必須在抽象類裡
抽象方法必須在子類中被實現,除非子類是抽象類
抽象類字元修飾
例如:
public
abstract
class
pet
向上轉型:父類的引用指向子類物件,自動進行型別轉換
《父型別》 《引用變數名》 = new 《子型別》();
如:pet pet=new dog();
向下轉型:將乙個指向子類物件的父類引用賦給乙個子類的引用,即:父類型別轉換為子類型別
《子型別》 《引用變數名》 = (《子型別》 )《父型別的引用變數》;
如:dog dog=(dog)pet;
instanceof運算子
if
(pet instanceof
dog)
{ dog dog =
(dog)pet;
dog.
playdish()
;
注意:使用instanceof時,物件的型別必須和instanceof後面的引數所指定的類在繼承上有上下級關係 方法重寫與多型
當從父類繼承的方法不能滿足子類的需要時,可以在子類中對這一方法進行重寫 覆蓋 以符合需求。重寫方法和被重寫的方法必須具有相同的方法名 重寫方法和被重寫方法引數列表相同 重寫方法的返回值型別和父類的返回值型別是同類或者是子類 重寫方法不能縮小被重寫方法的訪問許可權,public class depar...
多型方法重寫
多型 指的是一種事物,在不同時刻所表現出來的不同狀態 貓是型別,貓也是一種動物 多型的前提 1.要有繼承關係 2.要有方法重寫,當然不重寫也可以,但是沒有太大意義 3.多型 就是 父類引用指向子類物件 public class mytestclass animal class dog extends...
重寫與多型
一.方法重寫規則 1.方法名相同。2.引數列表相同。3.返回值型別相同或者是其子類。4.訪問許可權不能嚴於父類。二.抽象方法 abstract也可用於方法 1.抽象方法沒有方法體。2.抽象方法必須在抽象類裡。3.抽象方法必須在子類中被實現,除非子類是抽象類。三.多型 是具有表現多種形態的能力的特徵。...