Java 簡單列舉一下抽象類和接口的區別

一、區別

抽象類(abstract) 接口(interface)
實現 ×
繼承 ×
能實例化 × ×
實現或繼承使用的關鍵字 extends implements
實現或繼承的類叫做 子類
可以多繼承或多實現 ×
方法聲明
方法實現 ×
方法的標識符 punlic、private、protected public
實現抽象方法
變量 普通變量 靜態不可修改常量
作用 重構 設計
側重點 抽象類別 抽象功能
可以有構造方法 ×

注意:

  1. 接口的方法也是可以實現的,但是需要加上final標識符
  2. 如果在接口中定義一個成員變量的話,默認會加上public static final

二、使用場景

接口

  1. 不關注方法的實現邏輯。只是對方法做一個規範,並不關心它的實現邏輯。
  2. 有一系列有類似功能的類。定義一個接口,統一管理這些類的實現,在使用的時候,只需要通過一個接口就可以獲取這些類。

抽象類

  1. 需要抽象方法和實現方法共存
  2. 存在方法或變量需要共享

三、總結

抽象類更像一個類的樹幹,而接口就像一個類的樹枝。
樹枝可以有千萬條,但是樹幹只能有一個。
在java中,所有的類最終都是繼承與Object,我們可以用一個類來繼承Object後提供給其它類繼承。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章