JAVA中extends 与implements区别

时间:2022-10-23 17:31:50

Java中extends与implements的区别 


1)interface是一个接口,类似于C++中的纯虚函数。 
举个简单的例子,有一类东西,都具有同样的行为,而这个共有的行为实现方式不一样。 

如:笔这类东西,都有共同的行为“写”,铅笔、毛笔、圆珠笔、钢笔都有“写”的功能,但实现起来不一样。那么我们就可以抽象出一个接口“笔”

 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。