1. 程式人生 > >讓人迷糊的interface和abstract

讓人迷糊的interface和abstract

最近在做公司的一個專案的時候,看到他們的基礎程式碼的時候犯迷糊了

java 程式碼
  1. publicinterface GenericModel extends Model   
  2. {   
  3. publicabstractvoid setId(String s);   
  4. publicabstract String getId();   
  5. publicabstractvoid setCreateDate(Date date);   
  6. publicabstract Date getCreateDate();   
  7. }  

本來覺得自己對interface和abstract的理解已經透徹了,結果看了上面的程式碼還是疑問起來

為什麼要在接口裡面的方法定義為abstract??有必要嗎??

介面的方法不是預設為public abstract 的嗎,可能寫出來更明確些,但是卻讓新人更迷糊了

別人會問為什麼要加上,是否必要

所以我總結了下,interface和abstract的差異

可能最大的差異要算是類只能 extends一個父,而一個類可以有多個介面

abstract類可以有抽象的方法,也可以有實際的方法

而interface只能有抽象的方法

其他方面他們兩個到是很相像了