package cm.abstracts.application;
//這個類用來測試:在抽象類的普通方法中調用抽象方法
public class InstanceFfourtyFive {
public static void main(String[] args) {
//有構造方法不一定有對應的抽象方法,有抽象方法必有對應的構造方法
//通過子類實例化抽象類對象
Love l = new Hate();
//直接調用抽象類中定義的抽象方法,其具體內容已經過子類覆寫
l.diaoChou();
}
}
//創建抽象模板類:父類,必有子類,關鍵字abstract
abstract class Love{
//對類中程序自動創建的隱式構造方法,要習慣性創建,養成一種良好習慣
public Love() {}
//創建抽象類中的普通方法,並在此抽象類的此普通方法中調用抽象方法
/** 抽象類中可以定義普通方法,最爲關鍵的是,這些普通方法可以直接調用抽象類中定義的抽象方法,而具體的抽象方法是經過子類覆寫的 */
protected void diaoChou() {
//經過子類覆寫的抽象方法的具體內容
this.love();
}
//抽象類中定義的抽象方法
public abstract void love();
}
//創建子類:抽象類必有子類,一個子類只能有一個抽象類(父類)
class Hate extends Love{
//對類中程序自動創建的隱式構造方法,要習慣性創建,養成一種良好習慣
public Hate() {}
@Override //備註:中文意思覆寫、重寫、覆蓋,重寫抽象類中的同名抽象方法
/** 抽象類中可以定義普通方法,最爲關鍵的是,這些普通方法可以直接調用抽象類中定義的抽象方法,而具體的抽象方法是經過子類覆寫的 */
//經過子類覆寫的抽象方法的具體內容
public void love() {
System.out.println("問世間情爲何物,直教人生死相許");
System.out.println("我愛誰,誰愛我,我還能愛誰");
System.out.println("誓要出書,哪怕自費,字數最起碼幾十萬,近百萬");
}
}
彥舜原創,首發