TypeScript面向?qū)ο螅ǘǔ橄箢?、接口?/h2>

TypeScript 面向?qū)ο笃渌鼉?nèi)容可看這篇文章 ??
TypeScript面向?qū)ο螅ㄒ唬悺?gòu)造函數(shù)、繼承)

一、抽象類

通過(guò)關(guān)鍵字 abstract開(kāi)頭定義一個(gè)抽象類
抽象類和其它類區(qū)別不大,被專門(mén)用作繼承的類,不能再被創(chuàng)作為實(shí)例的類
抽象類中的抽象方法,只能定義在抽象類中,子類必須對(duì)抽象方法進(jìn)行重寫(xiě)

舉例
abstract class Animal {

   //......

    abstract sayHi(): void

}

class Dog extends Animal {
    sayHi() { // 子類如果不寫(xiě)此方法將會(huì)報(bào)錯(cuò)
        console.log('汪汪汪!')
    }
}
// const an  = new Animal()  // 如果嘗試去創(chuàng)建一個(gè)抽象類的實(shí)例,會(huì)報(bào)錯(cuò)!
const dog = new Dog()
dog.sayHi()  // 汪汪汪!

二、接口

通過(guò)關(guān)鍵字interface來(lái)定義接口

接口可以在定義的時(shí)候,限制類的結(jié)構(gòu)
接口中所有的屬性,都不能有實(shí)際的值
接口中所有的方法,都是抽象方法

interface myInter {
    name: string;
    sayHello(): void;
}
實(shí)現(xiàn)接口

通過(guò)關(guān)鍵字implements實(shí)現(xiàn)接口

interface myInter {
    name: string;
    sayHello(): void;
}
class haveInter implements myInter{
    name: '孫悟空';  // 必須要有接口里的同名屬性
    constructor(name) {
        this.name = name
    }
    sayHello() {   // 必須要有接口里的同名方法
      console.log('哈哈哈哈')
    }
}

點(diǎn)個(gè)贊再走唄~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容