一、含义 

     1、extends 用于继承父类,只要那个类不是声明final或者定义为abstract就能继承。如:

class A{
int i;
void f(){
//此方法实现代码
}
}

class B extends A{
int j;
void f(){
//此方法实现代码,重写了父类的同名方法
}
void g(){
//此方法实现代码
}
}

     2、implements 用于实现接口,因为接口只定义方法,没有程序实现,它必须由使用者来实现这些功能。如:

//定义一个体育运动(Sport)的接口,其内部只有方法定义而无程序实现代码
interface Sport {
void run();//跑步
void jump();//跳跃
}

//定义一个运动员(Athlete)类,引入了Sport接口并实现了它
class Athlete implements Sport {

public void run() {
System.out.println("短跑");
}

public void jump() {
System.out.println("跳高");
}

public static void main(String[] args) {
Ahtlete al=new Ahtlete();
al.run();
al.jump();
}
}

 二、区别

     extends和implements有什么不同? 

     对于class而言,extends用于(单)继承一个类(class),而implements用于实现一个或多个接口(interface)。  

     interface的引入是为了部分地提供多继承的功能。在interface中只需声明方法头,而将方法体留给实现的class来做。这些实现的class的实例完全可以当作interface的实例来对待。在interface之间也可以声明为extends(多继承)的关系,即一个interface可以extends多个其他interface,extend可以继承一个接口,但仍是一个接口,还是需要implements之后才可使用的。

    extends:可以理解为全盘继承了父类的功能

    implements:可以理解为为这个类附加一些额外的功能

     举个动物类(猫、狗、鸟、昆虫)的例子:

     Animal是一个父类,cat,dog,bird,insect都extends了Animal,但是cat,dog还可以implements比如跑、叫(run、shout)这些interface,bird,insect可以implements比如飞(fly)这些interface。

     java中不支持多重继承,但是可以使用接口来实现这一目的,这样就要用到implements。继承只能继承一个父类,但implements可以实现多个接口,用逗号分开就行了 比如 :

class A extends B implements C,D,E{
//...
}

接口实现的注意点:

    a.实现一个接口就是要实现该接口的所有的方法(抽象类除外)。

    b.接口中的方法都是抽象的。

    c.多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。

与extends的不同

    extends,可以实现父类,也可以调用父类初始化 this.parent()。可以继承、覆盖父类定义的变量或者函数。这样的好处是:架构师定义规划好类的接口(类中的方法),让工程师具体实现就可以了。整个项目开发效率和开发成本大大降低。

    implements,实现父接口,子类不可以覆盖父接口的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父接口中的相同的变量或者函数取代掉。

    这两种实现的具体使用,要看项目的实际需要,如果希望实现不可以修改父类,使用implements,只定义接口需要具体实现;如果希望允许修改或者扩展父类,则使用extends。

三、接口和抽象类的区别

    1、接口可以被多重implements,抽象类只能被单一extends;

    2、接口只有定义,抽象类可以有定义和实现;

    3、接口的字段定义默认为public static final,抽象类字段默认是“friendly”(本包可见)。