当子类继承了父类,就自动的拥有父类的所有功能,如果子类需要扩展功能,可以通过实现接口的方式扩展。
实现接口是对java单继承机制的一种补充。
接口和继承解决的问题不同:
继承的价值主要在于:解决代码的复用性和可维护性。
接口的价值主要在于:设计好各种规范(方法),让其它类去实现这些方法。
接口比继承更加灵活,继承是满足 is-a 的关系,而接口只需满足 like-a 的关系。
接口在一定程度上可以实现代码的解耦。
package test;
public class Application {
public static void main(String[] args) {
LittleMoney wukong = new LittleMoney("小猴子");
wukong.climbing();
wukong.swimming();
wukong.flying();
}
}
//猴子
class Money {
private String name;
public Money(String name) {
this.name = name;
}
public void climbing() {
System.out.println("猴子会爬树");
}
public String getName() {
return name;
}
}
//接口
interface Fish {
void swimming();
}
interface Fly {
void flying();
}
//小猴子
class LittleMoney extends Money implements Fish,Fly{
public LittleMoney(String name) {
super(name);
}
@Override
public void swimming() {
System.out.println(getName()+"通过学习可以像鱼儿一样游泳");
}
@Override
public void flying() {
System.out.println(getName()+"通过学习可以像鸟儿一样飞翔");
}
}



