Java抽象方法是一種沒有實現(xiàn)體的方法,用abstract關(guān)鍵字修飾。抽象方法必須定義在抽象類中,抽象類可以擁有抽象方法和非抽象方法。抽象方法必須被子類實現(xiàn),否則子類也必須定義為抽象類。抽象方法的作用是為了讓子類實現(xiàn)多態(tài),讓子類在繼承父類時,擁有重寫抽象方法的能力。
非抽象類為什么能夠擁有抽象方法
現(xiàn)在明確了什么是Java抽象方法,再來看一下非抽象類為什么能夠擁有抽象方法。其實這個問題很好解決,因為非抽象類中的抽象方法必須在子類中被實現(xiàn),否則子類也必須定義為抽象類。所以非抽象類擁有抽象方法是為了約束子類必須實現(xiàn)該方法,實現(xiàn)了代碼重用,增強(qiáng)了代碼的可維護(hù)性。
使用非抽象類定義抽象方法的注意事項
雖然非抽象類定義抽象方法有一定的好處,但是我們也需要注意一些事項。首先,在非抽象類中定義抽象方法必須是public或protected修飾的,這樣才能保證子類能夠重寫該方法;其次,如果一個類中有抽象方法,它必須被定義為抽象類;最后,非抽象類定義抽象方法時,不能直接實例化該類,需要通過其子類來實例化。如果我們不注意這些問題,就會造成代碼的混亂和運(yùn)行時的異常。