概述:
如果是普通的類医寿,必須去實現(xiàn)接口里所有的方法,如果是抽象類蘑斧,則可以不去實現(xiàn)
如果子類是抽象類靖秩,則可以不實現(xiàn)接口中的所有方法须眷,因為抽象類中允許有抽象方法的存在!
.Java中抽象類就是使用abstract關鍵字修飾的一種特殊的類沟突,抽象類可以不去實現(xiàn)接口的抽象方法花颗,可以由繼承這個抽象類的子類去實現(xiàn)。
抽象類不能實例化惠拭,不能直接創(chuàng)建對象扩劝。抽象類是用來被繼承的,繼承抽象類的子類必須重寫父類所有的抽象方法职辅。否則棒呛,該子類也必須聲明為抽象類,使用 abstract 關鍵字修飾
抽象方法不能用private域携、final簇秒、static、native修飾
我們只定義靜態(tài)static方法完全OK涵亏,因為靜態(tài)方法是屬于類的宰睡,所以靜態(tài)方法必須滿足給類調(diào)用,如果通過類無法調(diào)用气筋,那么這種靜態(tài)方法肯定是不對的。
為了達到這一要求旋圆,static方法就必須有方法體宠默,即已經(jīng)實現(xiàn)了,也就不是抽象方法了灵巧。所以靜態(tài)(static)方法不能是抽象方法搀矫,
即abstract不能與static同時修飾方法。即沒有類抽象方法
abstract修飾的類需要被子類繼承刻肄,abstract修飾的方法需要子類重寫瓤球,但是final修飾的類不能被繼承,final修飾的方法也不能被子類重寫敏弃。
因為abstract修飾的方法必須通過子類重寫才有效卦羡,而private修飾的方法對子類不可見,
即父類中如果存在private abstract void out();而子類中有private void out(){}麦到,
則它們是兩個不同的方法绿饵,子類中的out方法不是對父類的重寫,而是屬于子類獨有的方法瓶颠。