優(yōu)秀文章
菜鳥教程 > Java 繼承
clever_fan > 重新認(rèn)識java(四) — 組合、聚合與繼承的愛恨情仇
說明
- 繼承是對抽象的抽象的體現(xiàn);<個人理解>
- 繼承是提升代碼復(fù)用的重要手段;
- 繼承是多態(tài)實(shí)現(xiàn)的基礎(chǔ);
實(shí)例
首先設(shè)計(jì)一個手機(jī)類:
public class Phone {
private String displayer; // 顯示器
private String battery; // 電池
// 充電
public void charge(){
battery = "100%";
System.out.println("當(dāng)前電量:"+battery);
}
}
現(xiàn)在需要一款帶鍵盤的手機(jī):
public class KeyPhone {
private String displayer; // 顯示器
private String battery; // 電池
private String keyboard; // 鍵盤
// 充電
public void charge(){
battery = "100%";
System.out.println("當(dāng)前電量:"+battery);
}
}
以上兩個類存在90%以上的代碼重復(fù);
從設(shè)計(jì)上來看,帶鍵盤的手機(jī)只是手機(jī)中的一種,兩者存在is-a的關(guān)系,滿足繼承關(guān)系,使用繼承重新設(shè)計(jì)KeyPhone:
public class KeyPhone extends Phone {
private String keyboard; // 鍵盤
}
給新的鍵盤手機(jī)執(zhí)行充電功能:
public static void main(String[] args) {
KeyPhone phone = new KeyPhone();
phone.charge();
}
輸出結(jié)果:
當(dāng)前電量:100%