接口優於抽象類(18)

一、java 提供了兩種容許多個實現的類型:接口、抽象類java

  • 抽象類容許某些方法的實現,接口不容許
  • 爲了實現抽象類定義的類型,類必須成爲抽象類的子類
  • java只容許單繼承,抽象了我受到了極大的限制
  • 任何一個類,只要實現了全部定義的必要方法,就被容許實現一個接口(不管該類處於什麼層次)

二、現有類能夠很容易被更新,以實現新的接口安全

三、接口是混合(mixin)類型的理想選擇框架

四、接口容許咱們構建非層次結構的類型框架設計

五、接口使得安全的加強類的功能成爲可能繼承

  • 抽象類則除了繼承沒別的好辦法

六、每一個重要接口都提供一個骨架實現類接口

  • 接管全部與接口實現相關的類
  • 骨架類就是一個抽象類,他能夠實現一個接口
  • 接口和抽象類的優勢結合起來
  • 以下面靜態工廠的實現,骨架實現類,爲抽象類提供實現上的幫助,有沒有嚴格限制

  • 能夠用內部私有類模擬多重繼承

七、抽象類演變比接口演變容易得多方法

八、設計公有接口須要很是謹慎,一旦公開被普遍接受,再想修改是不可能的im

九、總結:總結

  • 接口一般是定義容許多個實現的類型的最佳途徑
  • 當演變容易性比靈活性更重要時,選擇抽象類,接受她的侷限
  • 重要接口堅定使用骨架實現類
相關文章
相關標籤/搜索