package cm.abstracts.application;
public class InstanceFfourtyEight {
public static void main(String[] args) {
//主類主方法,所有程序入口,執行起點
// 分佈4:各個子類的具體操作由主類主方法發出命令
//通過創建對應子類對象的向上轉型,實例父類(抽象類)對象
//通過創建Robot類對象的向上轉型,創建父類對象
Abstract a = new Robot2();
a.program();
//通過創建對應Human類對象的向上轉型,創建抽象類對象
Abstract b = new Human2();
b.program();
//通過創建對應Pig類對象的向上轉型,創建抽象類對象
Abstract c = new Pig2();
c.program();
}
}
/** 按照以上的設計思路,實際上可以對程序做進一步的擴展,現在假設有3類事物:機器人(Robot)、人類(Human)
、豬(pig)
現在要求實現對以上事物的控制,即可以控制機器人、人類、豬的操作行爲,具體化每個實際事物類,即(覆寫抽象類中的抽象方法)。
再由父類(抽象類)中的普通方法直接調用本類中的抽象方法,最後由行爲類(創建實例化對象)發出具體的操作命令,即主類主方法。
分步1:首先應該對行爲進行抽象,
分佈2:對應每種行爲創建出具體的對應子類
分步3:具體化對應子類,即覆寫抽象類中的所有抽象方法
分佈4:子類的具體操作由主類主方法發出命令
*/
//分步1:首先應該對行爲進行抽象,聲明一個抽象類,必有子類,類中普通方法直接調用該抽象類的抽象方法
abstract class Abstract{
//定義各個事物共有的共同的屬性/特徵,常量,由此保存在底層的公共數據區
public static final String EAT = "大家都在喫飯";
public static final String SLEEP = "大家正在休息";
public static final String WORK = "大家正在工作";
彥舜原創,CSDN首發:定義三種商品,他們各自具備的對應功能,並使用(2)——重點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.