接口的目的是确保实现该接口的类将实现该接口中声明的所有方法。
例如:
public interface Flyer {
public void fly();
}
上面的接口保证了任何实现 Flyer 接口的 Java 类都会有 fly 方法的实现,而不管飞行是如何实现的。
例如:
public class Bird implements Flyer {
public void fly() {
System.out.println("Bird is flapping");
}
}
另一个例如:
public class Eagle implements Flyer {
public void fly() {
System.out.println("Eagle is soaring");
}
}
有了接口,我确信尽管实现不同,fly() 方法仍然存在。
因此,如果您想要一个具有 4 个不同接口行为的类 ABCD,如接口 A、B、C 和 D 中指定的,那么您可以实现:
public class ABCD implements A,B,C,D {
// methods here
}
通常,我们使用接口来继承行为,使用父/子类来继承模型。
那么我们如何使用 Flyer 界面呢?
示例代码:
public class FlyerTest {
public static void main (String [] args) {
Flyer flyer = new Eagle();
flyer.fly(); // Prints out "Eagle is soaring"
flyer = new Bird();
flyer.fly(); // Prints out "Bird is flapping"
}
}
如您所见,只要我有一个 Flyer,我就确信“fly”方法会有一个实现。这让我无需怀疑该方法是否真的存在。
这就是我们使用接口来继承行为的原因。
希望您对多重继承有更好的理解。
为了回答您的核心问题,面向对象的编程通常有助于促进代码重用。