首先你要明确java没有多重继承机制,作为代替使用了接口。接口从意义来说就是一个统一的可识别的行为。有多个类实现了相似的方法的时候,就可以对它们提取出一个接口,告诉其他人“可以通过同一种行为来操控我们”。当然,你认为接口的抽象方法必须全部实现很麻烦的话,这时就可以用Adapter,提取为同一个抽象类,因为抽象类的方法可以实现可以不实现。
想要一个有技术含量的例子,可以看看这个:
public class Example {
public void run1() {
I[] list = new I[] { new A(), new B() };
for (int i = 0; i < list.length; i++) {
list[i].methodI();
}
}
public void run2() {
Object[] list = new Object[] { new C(), new D() };
for (int i = 0; i < list.length; i++) {
if (list[i] instanceof C) {
((C) list[i]).methodI();
continue;
}
if (list[i] instanceof D) {
((D) list[i]).methodI();
continue;
}
}
}
}
interface I {
public void methodI();
}
class A implements I {
public void methodI() {
System.out.println("A");
}
}
class B implements I {
public void methodI() {
System.out.println("B");
}
}
class C {
public void methodI() {
System.out.println("A");
}
}
class D {
public void methodI() {
System.out.println("B");
}
}
但是千万要记住,不要为了接口而用接口,要根据实际情况来处理,否则会变得复杂。