(一) 先给出个例子,代码如下: /** * @author WangQun * 动物抽象类 */ abstract class Animal { public abstract void speak(); public void eat(){ // 闷头吃,不做额外的事情 } } /** * @author WangQun * 门神接口 */ interface DoorGod { void guard(); } /** * @author WangQun * 猫,继承自动物 */ class Cat extends Animal { @Override public void eat() { try { Thread.sleep( 1000 ); } catch (InterruptedException e) { e.printStackTrace(); } super .eat(); } @Override public void speak() { System.out.println( " 喵喵 " ); } } /** * @author WangQun * 狗,继承自动物,实现门神接口 */ class Dog extends Animal implements DoorGod{ @Override public void speak() { System.out.println( " 汪汪 " ); } public void guard() { while ( true ){ System.out.println( " 汪汪 " ); } } } 其中Animal为基类,定义speak和eat方法,eat方法给出了空实现; DoorGod为门神接口,定义了 guard方法来守护家门; Cat