首先继承关系我们可以自然的使用父类的功能,而不需要去重写,比如下面的一段的代码,monkey本身的本领就可以爬树,是从父辈上继承过来,而不需要去学习。但是如果悟空还想要飞翔则需要继承一个接口,提供相应的功能,同样悟空还可以学习更多的技能,也就需要更多的接口。 public interface Bird { /**小鸟飞翔的功能*/ public void fly(); } public class Test { public static void main(String[] args) { Monkey monkey=new Monkey("悟空爸爸"); monkey.climbing(); LittleMonkey littleMonkey = new LittleMonkey("悟空"); littleMonkey.climbing(); littleMonkey.fly(); } } class Monkey{ private String name; public Monkey(String name){ this.name=name; } public void climbing(){ System.out.println(name+"会爬树"); } public String getName(){ return name; } } class LittleMonkey extends Monkey implements Bird{ public LittleMonkey(String name){ super(name); } @Override public void fly(){ System.out.println(getName()+"经过努力,学会了腾云驾雾"); } } 接口和我们Java类中的虚拟类很相似,但是接口可以定义static方法,而虚拟类不可以定义static方法。