黑马程序员技术交流社区

标题: 抽象类与接口在作用上有何差异? [打印本页]

作者: date1130    时间: 2014-10-11 12:13
标题: 抽象类与接口在作用上有何差异?
一直没有搞明白,抽象类和借口的差异。
莫非只有单继承和多实现的好处吗?

作者: 张波    时间: 2014-10-11 12:19
实现接口的类必须要是重写接口中的所有方法,而继承抽象类只要重写抽象方法就行
作者: HM2014nuli    时间: 2014-10-11 12:31
抽象类可以有构造方法,接口不行,抽象类可以有普通成员变量,接口不行,抽象类可以有非抽象方法,接口不行,抽象类的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,抽象类中可以包含静态方法,接口中不能
作者: 逍遥小seng    时间: 2014-10-13 16:30
首先,抽象类可以有非抽象方法,但是含有抽象方法的类必须被定义成抽象类。所以抽象类可以为部分方法提供默认实现,避免子类中重复实现它们,而接口不能,接口中只能包括抽象方法。其次,由于抽象类中允许加入具体方法(即非抽象方法),因此向抽象类中添加一个具体的方法,不会对它的子类造成影响。对于接口,一旦公布接口,就必须非常稳定,因为随意在接口中添加抽象方法,会影响到所有实现类,这些实现类要么实现新增抽象方法,要么只能声明为抽象类。最后可以把抽象类看作介于“抽象”和“实现”之间的半成品,抽象类力所能及的完成了部分实现,但还有一些功能有待于它的子类去实现。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2