抽象類可以同時具有抽象方法和非抽象方法。如果不能創建抽象類的新對象,抽象類中的非抽象方法有什麼意義?如果無法創建抽象類的新對象,抽象類中的非抽象方法有什麼意義?
我知道你可以覆蓋子類中的非抽象方法,然後通過子類的對象使用它。但是如果你這樣做了,首先需要實現非抽象方法?
抽象類可以同時具有抽象方法和非抽象方法。如果不能創建抽象類的新對象,抽象類中的非抽象方法有什麼意義?如果無法創建抽象類的新對象,抽象類中的非抽象方法有什麼意義?
我知道你可以覆蓋子類中的非抽象方法,然後通過子類的對象使用它。但是如果你這樣做了,首先需要實現非抽象方法?
想想更多或谷歌更多。
具體子類可以使用抽象超類中的方法。因此,子類之間的所有共享功能可以進入基本抽象類。
代碼複用。如果您不覆蓋繼承類中的非抽象方法,您可以從抽象類繼承它們。
要讓它們在子類中違反DRY原則(不要重複自己):如果所有的子類具有相同的功能,爲什麼要在每個類中重複地寫它?
簡單的答案:重用和可維護性。
假設有4個擴展你的抽象類的具體類,它們將共享一些行爲。
在這種情況下,最好在抽象類中實現該方法,而不是在所有具體類中分別定義它。
您還可以爲方法提供合理的默認實現。 – 0xCAFEBABE