五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

尚硅谷TypeScript教程(李立超老師TS新課)

2023-07-01 11:58 作者:小代工作區(qū)  | 我要投稿

//////////////////////////////////////////////////////////////////////////////////////// 定義類

class person {

? // 定義實(shí)例屬性(需要new使用)

? name: string = "小斌"

? // 定義類屬性通過static(靜態(tài)屬性) 通過person獲取

? static age: number = 18

? // readonly只讀不可以修改

? readonly sex: string = "男"

? // 靜態(tài)只讀

? static readonly sex: string = "男"


? // 定義方法

? sayHellow() {

? ? console.log("大家好")

? }

}

const per = new person()


////////////////////////////////////////////////////////////////////////////////// this指向

class dog {

? name: string

? age: number

? // 每次調(diào)用都會(huì)指向?qū)嵗?構(gòu)造函數(shù)的this)

? constructor(name: string, age: number) {

? ? this.name = name

? ? this.age = age

? ? console.log("構(gòu)造函數(shù)執(zhí)行了")

? }

? bark() {

? ? console.log(this)

? }

}

// const dog1 = new dog("小黑", 5)

// const dog2 = new dog("旺財(cái)", 4)

// dog2.bark()

// console.log(dog1, dog2)


//////////////////////////////////////////////////////////////////////////////////// class繼承

;(function () {

? // 兩個(gè)類相同 出現(xiàn)重復(fù)代碼 所以提取(就是繼承 extends) all是父類(寫上面) 其他子類 并且可以再子類追加

? class all {

? ? name: string

? ? age: number

? ? constructor(name: string, age: number) {

? ? ? this.name = name

? ? ? this.age = age

? ? }

? ? bark() {

? ? ? console.log("動(dòng)物再叫")

? ? }

? }

? // 狗類

? class dog extends all {

? ? // name: string

? ? // age: number

? ? // constructor(name: string, age: number) {

? ? // ? this.name = name

? ? // ? this.age = age

? ? // }

? ? // bark() {

? ? // ? console.log("汪汪汪")

? ? // }

? }

? //貓類

? class cat extends all {

? ? // name: string

? ? // age: number

? ? // constructor(name: string, age: number) {

? ? // ? this.name = name

? ? // ? this.age = age

? ? // }

? ? // bark() {

? ? // ? console.log("瞄")

? ? // }

? ? //父也有bark 子也定義bark 會(huì)覆蓋 稱為(方法重寫)

? ? bark() {

? ? ? console.log("瞄")

? ? }

? }

? var DOG = new dog("旺財(cái)", 7)

? var CAT = new cat("小米", 2)

? // console.log(DOG, CAT)

? // DOG.bark()

? // CAT.bark()

})()


///////////////////////////////////////////////////////////////超類(也就是父類)super

;(function () {

? // 人類

? class people {

? ? name: string

? ? constructor(name: string) {

? ? ? this.name = name

? ? }

? ? talk() {

? ? ? console.log(`我是${this.name}`)

? ? }

? }

? // 張三類

? class zhangsan extends people {

? ? // 方法重寫

? ? talk() {

? ? ? // super 表示當(dāng)前類的父級(jí)

? ? ? // super.talk()

? ? ? console.log("我才是張三")

? ? }

? ? //super應(yīng)用 constructor函數(shù)因?yàn)楦割惗x 所以會(huì)重寫,語法會(huì)錯(cuò)誤,必須加上super()函數(shù),父類constructor接收name所以也要傳過去

? ? //重寫后需要兩個(gè)參數(shù)所以傳兩個(gè)

? ? age: number

? ? constructor(name: string, age: number) {

? ? ? super(name)

? ? ? this.age = age

? ? }

? }

? // 未重寫constructor

? // const zs = new zhangsan("張三")

? // 重寫constructor

? const zs = new zhangsan("張三", 100)

? // console.log(zs)

? // zs.talk()

})()


////////////////////////////////////////////////////////////////////////////////////////////////抽象類abstract

;(function () {

? // 汽車類(父)

? //抽象類就是專門用來繼承的 不能new,并且可以定義抽象方法 如didi()

? abstract class car {

? ? name: string

? ? constructor(name: string) {

? ? ? this.name = name

? ? }

? ? // 抽象方法 沒有方法體 void定義類型空

? ? //抽象方法必須定義在抽象類中,子類必須對(duì)抽象方法進(jìn)行重寫

? ? abstract didi(): void

? }

? // 凱迪拉克(子)

? class cadillac extends car {

? ? // 抽象方法重寫

? ? didi() {

? ? ? console.log(`我想買${this.name}`)

? ? }

? }


? const cd = new cadillac("凱迪拉克")

? console.log(cd)

? cd.didi()

? //使用父類(可以)---但是不想使用(只用來繼承)用抽象類 abstract

? // const che = new car("蘭博") ?//無法使用抽像類

})()


//////////////////////////////////////////////////////////////////////////接口 interface

;(function () {

? // 自定義聲明類型

? type myType = {

? ? name: string

? ? age: number

? }

? const obj: myType = {

? ? name: "代",

? ? age: 18,

? }


? //接口用來自定義一個(gè)類中可以包含哪些屬性方法,同時(shí)接口可以當(dāng)成聲明類型使用

? interface myInterface {

? ? name: string

? ? age: number

? }

? interface myInterface {

? ? gender: string

? }

? //接口可以當(dāng)成聲明類型使用 兩者合

? const jiekou: myInterface = {

? ? name: "代",

? ? age: 18,

? ? gender: "男",

? }

? // 區(qū)別:接口可以定義一個(gè)類中可以包含哪些屬性方法(屬性與方法都不能有實(shí)際的值--只是一個(gè)結(jié)構(gòu))

? interface jiekou {

? ? name: string

? ? sayLove(): void

? }

? // 使用myClass類,實(shí)現(xiàn)接口jiekou,實(shí)現(xiàn)接口就是滿足接口結(jié)構(gòu)要求

? class myClass implements jiekou {

? ? name: string

? ? constructor(name: string) {

? ? ? this.name = name

? ? }

? ? sayLove() {

? ? ? console.log(`我是${this.name}`)

? ? }

? }

? const aa = new myClass("帥哥")

? console.log(aa)

})()


尚硅谷TypeScript教程(李立超老師TS新課)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
理塘县| 长岭县| 湘西| 张掖市| 子洲县| 瓦房店市| 孙吴县| 辽阳市| 额敏县| 广河县| 武功县| 凌云县| 共和县| 永川市| 胶南市| 孟津县| 富裕县| 通州市| 婺源县| 内乡县| 定襄县| 华阴市| 德保县| 乌兰县| 呼和浩特市| 阿城市| 根河市| 武胜县| 永吉县| 盈江县| 昆山市| 芜湖市| 太谷县| 来宾市| 东乌珠穆沁旗| 钟山县| 信宜市| 乌恰县| 漳平市| 文化| 商水县|