implements 和 extends的区别

extends可以理解为全盘继承了父类的功能
implements可以理解为为这个类附加一些额外的功能
举个例子,Animal是一个父类,cat,dog,bird,insect都extends了Animal,
但是cat,dog,bird还可以implements比如run,shout这些interface,bird,insect可以implements比如fly这些interface

 
 
extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现extends只能继承一个类,implements可以实现多个接口
比如 class A extends B implements C,D,E 
interface定义一些方法,并没有实现,需要implements来实现才可用
extend可以继承一个接口,但仍是一个接口,也需要implements之后才可用
 
 
对于class而言,extends用于(单)继承一个类(class),而implements用于实现一个接口(interface)。
interface的引入是为了部分地提供多继承的功能。 在interface中只需声明方法头,而将方法体留给实现的class来做。 这些实现的class的实例完全可以当作interface的实例来对待。 在interface之间也可以声明为extends(多继承)的关系。 注意一个interface可以extends多个其他interface。

猜你喜欢

转载自blog.csdn.net/leying521/article/details/80741273