抽象類
- 抽象類和抽象方法必須用abstract修飾
- 抽象類不能被實例化
- 抽象類有默認構造方法
- 有抽象方法畢為抽象類,抽象類不一定有抽象方法。
- 子類一定要實現所繼承抽象類的抽象方法
- 成員變量不能被抽象。
- abstract不能跟static共存,因為被static修飾的方法是可以被類名調用的,而abstract方法是不允許被調用的
- final不能跟static共存,因為final修飾的方法是不讓被繼承的,而abstract修飾的方法是需要被子類繼承的。
- private 不能跟static共存,因為private修飾的成員變量,成員方法是不會被繼承的,而abstract修飾的方法是需要被子類繼承的。
接口
狹義上是指java的interface,廣義上所有提供規則的都是接口
- 接口里面沒有構造方法,接口里面的成員方法必須是抽象的。
- 接口中的成員變量是的默認修飾符是public static final,可以自己設定。
- 類實現接口用implement
- 接口不能實例化
- 實現的接口必須重寫所有接口的方法
- 接口對外是暴露的。
接口與抽象類
抽象類是單繼承,is 的關系
接口是多實現,like 的關系