10.7 实现
上一节建立了接口的概念,这一节将介绍怎么实现接口。
我们创建一个类来“实现”上一节的接口,新建一个类,名字是Plane,然后在interface那一项,点击add(添加),弹出框里输入要实现的接口,没打完接口的全名,搜索的结果框就出现了IFlyable了

双击后这个接口就出现在interface的列表里,点击ok关闭接口搜索框(双击接口添加后不会关闭):


点击完成后Plane类是这样的:
public class Plane implements IFlyable{
@Override
public void launch(){
// TODO 自动生成的方法存根
}
@Override
public void fly(){
// TODO 自动生成的方法存根
}
@Override
public void land(){
// TODO 自动生成的方法存根
}
}
所谓的实现接口,就是把接口里所有的方法都实现,使得它有真实的功能。那么继承一个抽象类,和实现一个接口,有什么异同吗?
类实现接口 | 类继承抽象类 | |
---|---|---|
属性 | 类会继承接口的静态属性(接口没有非静态属性) | 会继承类的protected和public的属性 |
方法 | 必须实现接口里面所有方法,因为接口内的方法都是抽象的。 | 必须实现抽象(abstract)方法,否则本类也要定义成抽象(abstract) |
关系 | 类拥有接口的功能 | 类是父类的一种,肯定也有父类的功能 |
一个类可以实现多个接口 | 一个类只能继承一个类 |
java不支持多继承,一个类一次只能继承一个类(C++支持多继承),但可以实现多个接口。
那么怎么实现多个接口呢?
如果是用eclipse界面创建class,指定接口的时候,可以指定多个,假如还有一个接口,IGas,可加油的:
public interface IGas{
void addGas();
boolean isEmpty();
}
addGas表示加油,isEmpty判断是否没油,现在plane要实现这两个接口:IFlyable、IGas。
创建Plane的时候,指定第一个接口IFlyable


创建Plane的时候,指定第二个接口IGas


最后生成的代码是,从自动生成的方法存根可以看到两个接口的方法都在这里了:
public class Plane implements IFlyable,IGas{
@Override
public void addGas(){
// TODO 自动生成的方法存根
}
@Override
public boolean isEmpty(){
// TODO 自动生成的方法存根
return false;
}
@Override
public void launch(){
// TODO 自动生成的方法存根
}
@Override
public void fly(){
// TODO 自动生成的方法存根
}
@Override
public void land(){
// TODO 自动生成的方法存根
}
}