以下是範例,就和很多教科書一樣,只寫怎麼使用,感受不出它的威力。
public abstract class abstractPerson {
protected String Name;
protected boolean Sex;
protected String Email;
protected String Offer;
}
public class Engineer extends abstractPerson {
private LinkedList Skills;
public Engineer(){
Name = "";
Sex = true;
Email = "";
Offer = "";
Skills = new LinkedList();
}
}
上面那個例子,我設計"人"的抽象類別,然後讓"工程師"來繼承它,若我還有"行政作業員"或"財會小姐"之類的類別,也同樣可以透過這樣的方式繼承"人"。
其它例子....像是"財產"可以做成抽象類別,而"土地財產"、"建物財產"、"運輸設備"這些類別就可以繼承"財產";
或是"棋子"可以做成抽象類別,"國王"、"皇后"、"主教"....各別做成繼承"棋子"的實體類別。
還有另一種思考的方向是.....抽象類別可以視為繼承它的實體類別的大種類,用白話文來說,可以講成"是一種 (is a kind of)"。像前面財產的例子,就可以翻譯成土地財產是一種財產、運輸設備也是一種財產…等。用這種方式來思考,是比較容易將抽象類別應用在系統設計上。
沒有留言:
張貼留言