Java中extends与implements的区别
举个简单的例子,有一类东西,都具有同样的行为,而这个共有的行为实现方式不一样。
如:笔这类东西,都有共同的行为“写”,铅笔、毛笔、圆珠笔、钢笔都有“写”的功能,但实现起来不一样。那么我们就可以抽象出一个接口“笔”
interface 笔{ void 写(); }
implement的意思是指在铅笔、毛笔、圆珠笔要有”写“的这个功能,就需要实现接口”笔“的”写“功能。而这个关键字implement就是实现的意思,如:
class 铅笔 implement 笔{ void 写(){ 用铅芯画 } }
class 钢笔 implement 笔{ void 写(){ 用墨水画 } }2)extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了
比如
class A extends B implements C,D,E
interface的引入是为了部分地提供多继承的功能。
在interface中只需声明方法头,而将方法体留给实现的class来做。 这些实现的class的实例完全可以当作interface的实例来对待。 在interface之间也可以声明为extends(多继承)的关系。 注意一个interface可以extends多个其他interface。