关于 abstract 类的执行问题
GrandFather.java (抽象类) ,被 Father 继承 ,具有方法 doGet()
public abstract class GrandFather {
protected void doGet(){
System.out.println("GrandFather doGet...");
}
}
Father.java (抽象类), 被 Son 继承 , 具有 doGet() , doing() 方法
public abstract class Father extends GrandFather {
protected void doing(){
System.out.println("Father doing....");
}
protected void doGet(){
System.out.println("Father doGet....");
this.doing();
}
}
Son.java 具有 doing() 方法
public class Son extends Father {
@Override
protected void doing() {
System.out.println("Son doing...");
}
}
当在 Main 方法中 :
GrandFather gf = new Son() ;
gf.doGet() ; Main 方法打印 Son doing…
总结 : 抽象类会使用最后一个子类的方法 , 如果该子类没有重写该方法 , 那么则使用上一个类中的方法。
(个人理解,希望大家批评指正)