国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

TypeScript--類

RobinQu / 635人閱讀

摘要:中定義類屬性前面省略了關(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)前類里面可以訪問,子類、類外部都沒法訪問

public
class 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

相關(guān)文章

  • 一篇文章帶你過一遍 TypeScript

    摘要:泛型通過在函數(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)提出...

    AlphaWallet 評(píng)論0 收藏0
  • 【譯】使用TypeScript兩年后-值得嗎?

    摘要:弄了一個(gè)持續(xù)更新的筆記,可以去看看,鏈接地址此篇文章的地址使用兩年后值得嗎基礎(chǔ)筆記的地址可以也可以。使用,你可以使用抽象類等功能。有關(guān)抽象類的更多信息支持,和方法,只讀屬性。 弄了一個(gè)持續(xù)更新的github筆記,可以去看看,鏈接地址:Front-End-Basics 此篇文章的地址:使用TypeScript兩年后-值得嗎? 基礎(chǔ)筆記的github地址:https://githu...

    RyanQ 評(píng)論0 收藏0
  • TypeScript VS JavaScript 深度對(duì)比

    摘要:是事件驅(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...

    William_Sang 評(píng)論0 收藏0
  • 從 JavaScript 到 TypeScript - 聲明

    摘要:要為變量或者常量指定類型也很簡(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ù)...

    Flands 評(píng)論0 收藏0
  • TypeScript快速入門

    摘要:添加了可選的靜態(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...

    moven_j 評(píng)論0 收藏0
  • TypeScript入門學(xué)習(xí)之路

    摘要:學(xué)習(xí)之路學(xué)習(xí)之路安裝環(huán)境起步開發(fā)工具自動(dòng)編譯文件中的數(shù)據(jù)類型中的函數(shù)中類的定義繼承中的繼承中的繼承類的靜態(tài)屬性和靜態(tài)方法類的多態(tài)的抽象類中的接口中的泛型學(xué)習(xí)之路安裝環(huán)境查看版本起步新建通過命令編譯此時(shí)路徑下 ...

    jemygraw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<