接口和继承类的对比
java提供的实现(implements)是对单继承机制的补充
实现接口 VS 继承类:
接口和继承解决的问题不同
继承的主要价值在于:解决代码的复用性和可维护性
接口的主要价值在于:设计,设计好各种规范(方法),让其它类去实现这些方法,即更加的灵活...
接口比继承更加灵活,继承是满足 is-a 的关系,接口只需满足 like-a 的关系
接口在一定程度上实现代码解耦(即 接口规范性 + 动态绑定机制)

package com.Interface_;public class ExtenceVSInterface {public static void main(String[] args) {LittleMonkey wukong = new LittleMonkey("悟空");wukong.climbing();wukong.swimming();wukong.flying();}
}//继承
class Monkey{private String name;public Monkey(String name) {this.name = name;}public void climbing(){System.out.println(name + "会爬树");}public String getName() {return name;}
}
//接口
interface Fishable{public void swimming();
}
interface Birdable{public void flying();
}
class LittleMonkey extends Monkey implements Fishable,Birdable{//类只能继承一个类,不能继承别的类public LittleMonkey(String name) {super(name);}@Overridepublic void swimming() {System.out.println(getName() + "通过学习,像鱼儿一样游泳");}@Overridepublic void flying() {System.out.println("通过学习,像鸟儿一样飞翔");}
}
小结:
当子类继承了父类,就自动拥有了父类的功能
如果子类需要扩展功能,可以通过实现接口的方式扩展.
可以理解成 实现接口 是对java单继承机制的补充
