java 接口和抽象類的異同 java問題,抽象類,中可以定義成員變量和常量嗎?
java問題,抽象類,中可以定義成員變量和常量嗎?在Java中定義抽象類的屬性時,它們不必是常量。抽象類的要求如下:(1)抽象方法必須是公共的或受保護的(因為如果它是私有的,它就不能被子類繼承,并且子
java問題,抽象類,中可以定義成員變量和常量嗎?
在Java中定義抽象類的屬性時,它們不必是常量。抽象類的要求如下:(1)抽象方法必須是公共的或受保護的(因為如果它是私有的,它就不能被子類繼承,并且子類不能實現(xiàn)該方法)。默認情況下,它是公共的;(2)抽象類不能直接實例化,需要依賴子類向上轉(zhuǎn)換;(3)抽象類必須有子類。使用擴展繼承,一個子類只能繼承一個抽象類;(4)子類(如果不是抽象類)必須覆蓋抽象類中的所有抽象方法(如果子類沒有實現(xiàn)父類的抽象方法,也必須定義為抽象類)繼承具有顯式方法重寫要求的子類,而普通類可以有選擇地決定是否重寫這些子類;(2)抽象類實際上比普通類有更多的抽象方法,其他組件與普通類完全相同;(3)普通類對象可以直接實例化,但抽象類對象只能通過向上轉(zhuǎn)換才能得到。注:一個類的子類雖然可以繼承任何一個普通類,但從開發(fā)的實際需求來看,普通類不應(yīng)該繼承另一個普通類,而應(yīng)該繼承抽象類。