最近在做公司的一个项目的时候,看到他们的基础代码的时候犯迷糊了
java 代码
- public interface GenericModel extends Model
- {
- public abstract void setId(String s);
- public abstract String getId();
- public abstract void setCreateDate(Date date);
- public abstract Date getCreateDate();
- }
本来觉得自己对interface和abstract的理解已经透彻了,结果看了上面的代码还是疑问起来
为什么要在接口里面的方法定义为abstract??有必要吗??
接口的方法不是默认为public abstract 的吗,可能写出来更明确些,但是却让新人更迷糊了
别人会问为什么要加上,是否必要
所以我总结了下,interface和abstract的差异
可能最大的差异要算是类只能 extends一个父,而一个类可以有多个接口
abstract类可以有抽象的方法,也可以有实际的方法
而interface只能有抽象的方法
其他方面他们两个到是很相像了