Spring源码大量的使用继承和接口调用,现举个例子,不搞清楚这个无法看代码。
public class A extends B{
public void f1() {
System.out.println("f1 in a");
}
}
public abstract class B extends C {
protected abstract void f1();
protected String ff() {
f1();
return "ff in b";
}
}
public abstract class C extends D{
public void f2() {
super.f2();
System.out.println("f2 in c");
}
}
public abstract class D implements I{
public void f2() {
System.out.println("f2 in d");
f3();
}
public void f3() {
System.out.println("f3 in d");
System.out.println(ff());
}
protected abstract String ff();
}