如图,为什么子类要再实现一次接口?
猜想:
AppenderSkeleton是一个抽象类;JDBCAppender是一个实体类。
所以JDBCAppender再一次实现这个接口的原因是为了实现这个接口的所有方法,仅仅只通过继承AppenderSkeleton这个抽象类是达不到实现这接口所有方法的目的的,因为抽象类可以不用全部实现这个接口的所有方法。
自己可以测试一下,提供样本:
[code="java"]public interface A {
public void adfa();
public void abc();
public boolean aaa();
}
[/code]
[code="java"]public abstract class B implements A {
}[/code]
[code="java"]public class C extends B implements A{
@Override
public void adfa() {
// TODO Auto-generated method stub
}
@Override
public boolean aaa() {
// TODO Auto-generated method stub
return false;
}
@Override
public void abc() {
// TODO Auto-generated method stub
}
}[/code]
接口是java中最高层次的抽象,所以如果要进行约定API,接口是最适合的;接口还可以多实现,这是类/抽象类做不到的
里氏替换原则?