而interface用于实现‘接口依赖原则(ISP)’
有类似,但是有不同,
用途不同,:)
2。interface好比合同,如果你的类有某个interface,那么就应该实现它,比如你是人,目前是softwareengineer,那么应该会写helloworld。
但是用abstractclass 定义一个方法, 并且实现这个方法, 那么这个类的子类中, 都有了这样一个方法的默认实现, 接口就做不到这一点
abstract Class 可以加入一些共性的方法, 譬如一个大学的学生, 不论是本科, 大专,还是博士,他们都要有获取一个方法获取性别,
public String getSex(){
//return "F" or "M";
}
但是不同级别的学生,判断他们是否可以毕业条件则不相同, 但每种学生
都必须有这个方法, 所以可以设置一个抽象方法:
public boolean isCanGraduate(){}
接口里面不能含有实体方法, 这是选择时的一个重要区别。此外接口可以被多重implements ,为了兼顾两个优点, 有一种模式叫适配器模式。如
public abstract class MouseAdapter extends Object implements ouseListener{
}
http://www-900.ibm.com/developerWorks/cn/java/l-javainterface-abstract/index.shtml
深入理解abstract class和interface
深入理解abstract class和interface
一个基于类
一个基于行为