@CallSuper是android的一个注解. 表示 在实现父类方法的时候 需要在方法内部调用一下super.
但其实本质上, 就是需要super方法来进行一些初始化或者后续操作. 其实可以用下面的方法代替:
public class MySuperClass {
public static void main(String[] args) {
MySuperClass mySuperClass = new MySuperClass();
mySuperClass.doSomething();
}
//设为 final 不允许继承, 子类只可以继承realDoSomething
public final void doSomething() {
System.out.println("start");
realDoSomething();
System.out.println("end");
}
protected void realDoSomething() {
System.out.println("real do something in super");
}
}
class MySubClass extends MySuperClass {
public static void main(String[] args) {
MySubClass mySubClass = new MySubClass();
mySubClass.doSomething();
}
@Override
protected void realDoSomething() {
System.out.println("real do something in sub");
}
}
运行