scala用trait仍是用abstract class

何時應該使用特質而不是抽象類? 函數

若是你想定義一個相似接口的類型,你可能會在特質和抽象類之間難以取捨。這兩種形式均可以讓你定義一個類型的一些行爲,並要求繼承者定義一些其餘行爲。一些經驗法則:code

  • 優先使用特質。一個類擴展多個特質是很方便的,但卻只能擴展一個抽象類。
  • 若是你須要構造函數參數,使用抽象類。由於抽象類能夠定義帶參數的構造函數,而特質不行。例如,你不能說trait t(i: Int) {},參數i是非法的。
相關文章
相關標籤/搜索