abstract修飾抽象類和抽象方法。
包含抽象方法的類隻能定義成抽象類,但是抽象類中可以沒有抽象方法。
抽象方法沒有方法體。隻能由子類提供實作(重寫)。
抽象類隻能被繼承,final修飾的類不能被繼承,是以abstract和final不能共存。
抽象方法如下所示:
在上面的代碼中,這個抽象類包含了初始化塊、構造器。
下面定義一個三角形類,繼承Sharp類,實作Sharp類中的抽象方法。
假設還有個Circle類繼承了Sharp類,那麼如下代碼:
這段代碼定義了2個Sharp類型的引用性變量,分别指向Triangle和Circle。s1和s2可以直接調用上面的方法,無需強制類型轉換成其子類的類型。
注:利用抽象類和抽象方法可以充分發揮多态的優勢,使用更加靈活。