摘要:中定義類屬性前面省略了關(guān)鍵詞構(gòu)造函數(shù)實(shí)例化類的時(shí)候觸發(fā)的方法繼承在運(yùn)動(dòng)在運(yùn)動(dòng)子類在工作修飾符公有在當(dāng)前類里面子類類外面都可以訪問保護(hù)類型在當(dāng)前類里面子類里面可以訪問,在類外部沒法訪問私有在當(dāng)前類里面可以訪問,子類類外部都沒法訪問在運(yùn)動(dòng)在
ts中定義類
class Person{ name:string; //屬性 前面省略了public關(guān)鍵詞 constructor(n:string){ //構(gòu)造函數(shù) 實(shí)例化類的時(shí)候觸發(fā)的方法 this.name = n; } run():void{ alert(this.name); } } var p = new Person("lisi"); p.run()
class Person{ name:string; constructor(name:string){ this.name = name; } getName():string{ return this.name; } setName(name:string):void{ this.name = name; } } var p = new Person("lisi"); alert(p.getName()); p.setName("wanwu"); alert(p.getName());繼承
class Person{ name:string; constructor(name:string){ this.name = name; } run():string{ return `${this.name}在運(yùn)動(dòng)`; } } var p = new Person("lisi"); alert(p.run()); class Web extends Person{ constructor(name:string){ super(name); } run():string{ return `${this.name}在運(yùn)動(dòng)--子類` } work(){ alert(`${this.name}在工作`) } } var w = new Web("wanwu"); alert(w.run()); w.work();修飾符
public :公有 在當(dāng)前類里面、 子類 、類外面都可以訪問
protected:保護(hù)類型 在當(dāng)前類里面、子類里面可以訪問 ,在類外部沒法訪問
private :私有 在當(dāng)前類里面可以訪問,子類、類外部都沒法訪問
publicclass Person{ public name:string; constructor(name:string){ this.name = name; } run():string{ return `${this.name}在運(yùn)動(dòng)`; } } var p = new Person("lisi"); alert(p.run()); class Web extends Person{ constructor(name:string){ super(name); } run():string{ return `${this.name}在運(yùn)動(dòng)--子類` } work(){ alert(`${this.name}在工作`) } } var w = new Web("wanwu"); alert(w.run());protected
class Person{ protected name:string; constructor(name:string){ this.name = name; } run():string{ return `${this.name}在運(yùn)動(dòng)`; } } var p = new Person("lisi"); alert(p.run()); class Web extends Person{ constructor(name:string){ super(name); } run():string{ return `${this.name}在運(yùn)動(dòng)--子類` } work(){ alert(`${this.name}在工作`) } } var w = new Web("wanwu"); alert(w.run());靜態(tài)屬性 靜態(tài)方法
class Person{ public name:string; /*公有屬性*/ static sex = "男" //靜態(tài)屬性 constructor(name:string){ this.name=name; } run():string{ return `${this.name}在運(yùn)動(dòng)` } static print(){ // alert("print方法"+this.name); alert("print方法"+Person.sex); } } var p = new Person("lisi"); Person.print();多態(tài)
多態(tài):父類定義一個(gè)方法不去實(shí)現(xiàn),讓繼承它的子類去實(shí)現(xiàn),每一個(gè)子類有不同的表現(xiàn)
多態(tài)屬性繼承
class Animal{ name:string; constructor(name:string){ this.name = name; } //具體吃什么,不知道,具體吃什么,讓繼承它的子類去實(shí)現(xiàn),每一個(gè)子類的表現(xiàn)不一樣 eat(){ console.log("吃的方法") } } class Dog extends Animal{ constructor(name:string){ super(name); } eat(){ return this.name +"吃骨頭" } } var d = new Dog("d"); alert(d.eat()); class Cat extends Animal{ constructor(name:string){ super(name); } eat(){ return this.name +"吃魚" } } var c = new Cat("c"); alert(c.eat());父類有方法,子類沒有同樣的方法
class Animal{ name:string; constructor(name:string){ this.name = name; } //具體吃什么,不知道,具體吃什么,讓繼承它的子類去實(shí)現(xiàn),每一個(gè)子類的表現(xiàn)不一樣 eat(){ console.log("吃的方法") } } class Dog extends Animal{ constructor(name:string){ super(name); } eat(){ return this.name +"吃骨頭" } } var d = new Dog("d"); alert(d.eat()); class Cat extends Animal{ constructor(name:string){ super(name); } // eat(){ // return this.name +"吃魚" // } } var c = new Cat("c"); alert(c.eat());抽象類
抽象類:它是提供其它繼承的基類,不能直接被實(shí)例化
abstract關(guān)鍵字定義抽象方法,抽象類中的抽象方法不包含具體實(shí)現(xiàn)并且必須在派生類中實(shí)現(xiàn)
abstract抽象方法只能放在抽象類里面
抽象類和抽象方法用來定義標(biāo)準(zhǔn),標(biāo)準(zhǔn):Animal這個(gè)類要求它的子類必須包含相同的方法,如eat()
直接被實(shí)例化,報(bào)錯(cuò)abstract class Animal{ public name:string; constructor(name:string){ this.name = name; } abstract eat():any; run(){ console.log("運(yùn)動(dòng)") } } var a = new Animal();父類定義的抽象方法,子類沒有定義,報(bào)錯(cuò)
abstract class Animal{ public name:string; constructor(name:string){ this.name = name; } abstract eat():any; run(){ console.log("運(yùn)動(dòng)") } } class Dog extends Animal{ constructor(name:string){ super(name); } // eat(){ // console.log(this.name+"吃骨頭") // } }正常
類非抽象方法,子類可以不寫
abstract class Animal{ public name:string; constructor(name:string){ this.name = name; } abstract eat():any; run(){ console.log("運(yùn)動(dòng)") } } class Dog extends Animal{ constructor(name:string){ super(name); } eat(){ console.log(this.name+"吃骨頭") } } var d = new Dog("d"); d.eat() class Cat extends Animal{ constructor(name:string){ super(name); } eat(){ console.log(this.name+"吃魚") } } var c = new Cat("c"); c.eat()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/101691.html
摘要:泛型通過在函數(shù)接口類變量名后使用定義。抽象類可以包括具體實(shí)現(xiàn)一個(gè)類只能繼承一個(gè)類,但是可以實(shí)現(xiàn)多個(gè)接口。該開源項(xiàng)目目前由社區(qū)進(jìn)行維護(hù)。通常通過中的字段,或者聲明文件進(jìn)行聲明。 TypeScript 是 Javascript 的一個(gè)超集,提高了代碼的可讀性和可維護(hù)性。Typescript 官網(wǎng)提供的文檔已經(jīng)相當(dāng)完善,但完整地看一遍需要一定的時(shí)間,本文試將 TypeScript 中要點(diǎn)提出...
摘要:弄了一個(gè)持續(xù)更新的筆記,可以去看看,鏈接地址此篇文章的地址使用兩年后值得嗎基礎(chǔ)筆記的地址可以也可以。使用,你可以使用抽象類等功能。有關(guān)抽象類的更多信息支持,和方法,只讀屬性。 弄了一個(gè)持續(xù)更新的github筆記,可以去看看,鏈接地址:Front-End-Basics 此篇文章的地址:使用TypeScript兩年后-值得嗎? 基礎(chǔ)筆記的github地址:https://githu...
摘要:是事件驅(qū)動(dòng)的,只根據(jù)用戶的操作做出相應(yīng)的反應(yīng)處理。中的數(shù)據(jù)要求帶有明確的類型,不要求。這些小小的變化可能會(huì)產(chǎn)生嚴(yán)重的意想不到的后果,因此有必要撤銷這些變化。的優(yōu)勢(shì)相比于,也有一些明顯優(yōu)勢(shì)。因此在應(yīng)對(duì)大型開發(fā)項(xiàng)目時(shí),使用更加合適。 showImg(https://segmentfault.com/img/bV1Dx7?w=740&h=322); TypeScript 和 JavaScri...
摘要:要為變量或者常量指定類型也很簡(jiǎn)單,就是在變量常量名后面加個(gè)冒號(hào),再指定類型即可,比如聲明函數(shù)是類型,即返回值是類型聲明參數(shù)是類型聲明是無返回值的聲明是這段代碼演示了對(duì)函數(shù)類型參數(shù)類型和變量類型地聲明。變量函數(shù)參數(shù)和返回值需要申明類型。 從 JavaScript 語(yǔ)法改寫為 TypeScript 語(yǔ)法,有兩個(gè)關(guān)鍵點(diǎn),一點(diǎn)是類成員變量(Field)需要聲明,另一點(diǎn)是要為各種東西(變量、參數(shù)...
摘要:添加了可選的靜態(tài)類型注意并不是強(qiáng)類型和基于類的面向?qū)ο缶幊獭n愵愋徒涌谑纠涌诟⒅毓δ艿脑O(shè)計(jì),抽象類更注重結(jié)構(gòu)內(nèi)容的體現(xiàn)模塊中引入了模塊的概念,在中也支持模塊的使用。 一:Typescript簡(jiǎn)介 維基百科: TypeScript是一種由微軟開發(fā)的自由和開源的編程語(yǔ)言。它是JavaScript的一個(gè)嚴(yán)格超集,并添加了可選的靜態(tài)類型和基于類的面向?qū)ο缶幊獭#的首席架構(gòu)師以及Delp...
摘要:學(xué)習(xí)之路學(xué)習(xí)之路安裝環(huán)境起步開發(fā)工具自動(dòng)編譯文件中的數(shù)據(jù)類型中的函數(shù)中類的定義繼承中的繼承中的繼承類的靜態(tài)屬性和靜態(tài)方法類的多態(tài)的抽象類中的接口中的泛型學(xué)習(xí)之路安裝環(huán)境查看版本起步新建通過命令編譯此時(shí)路徑下 ...
閱讀 3920·2021-11-24 09:38
閱讀 3096·2021-11-17 09:33
閱讀 3871·2021-11-10 11:48
閱讀 1241·2021-10-14 09:48
閱讀 3130·2019-08-30 13:14
閱讀 2551·2019-08-29 18:37
閱讀 3393·2019-08-29 12:38
閱讀 1418·2019-08-29 12:30