文章摘要: 抽象方法必須包含 abstract關鍵字並且可以包含訪問修飾符} 抽象類中的抽象方法不包含具體實現並且必須在派生類中實現
專案實踐倉庫
https://github.com/durban89/typescript_demo.git
tag: 1.1.4
爲了保證後面的學習演示需要安裝下ts-node,這樣後面的每個操作都能直接執行看到輸出的結果。
npm install -D ts-node
後面自己在練習的時候可以這樣使用
npx ts-node 指令碼路徑
類
抽象類
抽象類做為其它派生類的基類使用。 它們一般不會直接被例項化。 不同於介面,抽象類可以包含成員的實現細節。 abstract關鍵字是用於定義抽象類和在抽象類內部定義抽象方法。具體例子如下
abstract class Animal
abstract makeSount(): void; move(): void
console.log("我在移動");
抽象類中的抽象方法不包含具體實現並且必須在派生類中實現。 抽象方法的語法與介面方法相似。 兩者都是定義方法簽名但不包含方法體。 然而,抽象方法必須包含 abstract關鍵字並且可以包含訪問修飾符。具體示例如下
abstract class Department
constructor(public name: string)
printName(): void
console.log("部門名稱:" + this.name);
abstract printMeeting(): void; // 必須在派生類中實現
class AccountingDepartment extends Department
constructor()
super("會計和審計"); // 在派生類中必須呼叫super()
printMeeting(): void
console.log("會計部每個星期一上午10點開會");
generateReports(): void
console.log("生成會議報告");
let department: Department; // 允許建立一個對抽象型別的引用
// department = new Department(); // 不能建立一個抽象類的例項
department = new AccountingDepartment(); // 允許對一個抽象子類進行例項化和賦值
department.printName();
department.printMeeting();
// department.generateReports(); // 此方法不能呼叫,因為在宣告的抽象類中不存在
執行後的結果如下
$ npx ts-node src/classes_6.ts
部門名稱:會計和審計
會計部每個星期一上午10點開會
本例項結束實踐專案地址
https://github.com/durban89/typescript_demo.git
tag: 1.1.5
http://www.buzzfunnews.com/20180826746.html
更多有趣新聞請上:http://www.buzzfunnews.com
沒有留言:
張貼留言