本質:子類重寫父類方法,並且使用父類引用指向子類對象,調用此方法是子類的方法。
模板抽象類,定義一些模板方法
public abstract class Cook {
public abstract void doCook();
public void addAfter() {
System.out.println("加鹽");
}
public void addOil() {
System.out.println("添油");
}
public void cook() {
addOil();
doCook();
addAfter();
}
public static void main(String[] args) {
// 炒土豆
Cook cook1 = new Potato();
cook1.cook();
System.out.println("-----------");
// 炒番茄
Cook cook2 = new Tomato();
cook2.cook();
}
}
子類重寫抽象方法
public class Potato extends Cook {
@Override
public void doCook() {
System.out.println("加入土豆");
}
@Override
public void addAfter() {
System.out.println("加醋");
}
}
public class Tomato extends Cook {
@Override
public void doCook() {
System.out.println("加入西紅柿");
}
}