<small>
方法重寫:
因為父類的方法滿足不了子類需求時碍讨,
要求子類對該方法進行重寫,從而實現(xiàn)
子類自己的業(yè)務(wù)功能蒙秒。
在一定程度上勃黍,父類方法是沒有業(yè)務(wù)代碼的,
則該方法徒有虛名晕讲,沒有方法體實現(xiàn)代碼覆获。
此時,可以將該方法體省略瓢省。
正課:
1弄息、抽象
1)、抽象方法
a净捅、為什么有抽象方法疑枯?
因為父類的方法滿足不了子類需求時,
要求子類對該方法進行重寫蛔六,從而實現(xiàn)
子類自己的業(yè)務(wù)功能。
在一定程度上废亭,父類方法是沒有業(yè)務(wù)代碼的国章,
則該方法徒有虛名,沒有方法體實現(xiàn)代碼豆村。
此時液兽,可以將該方法體省略,定義成抽象方法掌动。
b四啰、抽象方法定義
普通方法:五要素
修飾符 返回值類型 方法名 (參數(shù)列表){方法體}
抽象方法:
修飾符 abstract 返回值類型 方法名 (參數(shù)列表);
特點:
①、修飾符中有abstract關(guān)鍵字粗恢,表示抽象柑晒。
②、沒有方法體眷射,連{}都沒有匙赞。
c、抽象方法的意義
提供統(tǒng)一的入口妖碉,有效的實現(xiàn)代碼功能擴展涌庭。
d、抽象方法的使用
抽象方法只有方法名欧宜,沒有方法體坐榆,無實質(zhì)上的業(yè)務(wù)實現(xiàn)。
需要實體類冗茸,繼承抽象類席镀,對抽象方法實現(xiàn)重寫匹中,
從而實現(xiàn)方法的真實功能代碼,滿足業(yè)務(wù)需求愉昆。
實體類實現(xiàn)抽象類职员,重寫抽象方法,
調(diào)用的是重寫之后的方法跛溉。
2)焊切、抽象類
a、抽象類定義
抽象類是特殊的特殊類芳室。
含有抽象方法的類专肪,必定是抽象類。
抽象類不一定含有抽象方法堪侯。
普通實體類:
[public] class 類名{ 類體 }
抽象類:
[public] abstract class 類名{ 類體 }
b嚎尤、抽象類意義
抽象類含有構(gòu)造方法,但不可以實例化(創(chuàng)建對象)伍宦。
在一定程度上芽死,實現(xiàn)了代碼的保護。
含有抽象方法的抽象類次洼,可以通過繼承來實現(xiàn)关贵。
不含有抽象方法的抽象類,本質(zhì)上就是對代碼保護卖毁。
c揖曾、抽象類使用
抽象類不可以實例化,但可以通過繼承關(guān)系來實現(xiàn)“實例化”亥啦。
//抽象類Animal無法實例化
Animal animal = new Animal();
//向上造型
Animal = animal = new Dog();
①炭剪、實體類繼承抽象類:
必須重寫抽象方法。
②翔脱、抽象類繼承抽象類:
可以暫時不重寫抽象方法奴拦,
直到實體類繼承抽象類為止。
3)碍侦、抽象方法粱坤、抽象類總結(jié)
a、父類中的某些方法瓷产,滿足不了子類的需求站玄,
只有方法名,沒有方法體代碼濒旦,則可以被
定義成抽象方法株旷。
b、抽象類是特殊的類:
含有抽象方法的類,必定是抽象類晾剖。
抽象類可以不含有抽象方法锉矢。
c、抽象類含有構(gòu)造方法齿尽,但不能實例化沽损。
可以通過向上造型方式完成“實例化”。
d循头、實體類繼承抽象類镶奉,必須重寫抽象方法裙士,
抽象類繼承抽象類,可以暫時不重寫抽象方法惠窄。