TypeScript 類(Classes)的創(chuàng)建與繼承

概要

image.png

類的創(chuàng)建

源碼

  • ts
//創(chuàng)建一個類
class Person{
    //增加兩個屬性
    name:string;
    age:number;
    //增加可以傳參的構(gòu)造方法
    constructor(name:string,age:number){
        this.name = name;
        this.age = age;
    }
    //增加一個自定義的普通的打印函數(shù)
    print(){
        return this.name + ":" + this.age;
    }
}

//使用上面創(chuàng)建的類
// var p = new Person();//這里在使用上面的類時沒有傳遞參數(shù)是會報錯的荠卷,因為上面定義的 constructor 構(gòu)造方法中存在參數(shù),所以這里也一定要傳遞參數(shù)
var p = new Person('xiaochuan',22);
alert(p.print());
  • HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TypeScript 類(Classes)的創(chuàng)建</title>
</head>
<body>
    <script type="text/javascript" src="Functions.js"></script>
</body>
</html>
  • 瀏覽器輸出效果
image.png

類的繼承

源碼一 未使用 constructor 構(gòu)造方法

  • ts
//創(chuàng)建一個最基本的類
class Person{
    //增加兩個屬性
    name:string;
    age:number;
    
    //增加一個自定義的普通的輸出函數(shù)
    tell(){
        return this.name + ":" + this.age;
    }
}

//再新建一個擴展自 Person 這個類的子類
//這樣擴展之后 這個 Student 就也有了 name 和 age 兩個屬性笆怠,還用 tell 這個方法
class Student extends Person{
    //還可以給 Student 新增自己的屬性
    school:string;
    //這里還可以重寫繼承而來的方法
    tell(){
        return this.name + ":" + this.age + ":" + this.school;
    }
}

//使用這個子類
var s = new Student();
// s.tell();//這樣直接寫是沒有任何的輸出的因為上面沒有對其屬性做任何的賦值
//下面是賦值之后再輸出
s.name = 'xiaochuan';
s.age = 22;
s.school = '北京大學(xué)';
alert(s.tell());
  • HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TypeScript 類(Classes)的繼承</title>
</head>
<body>
    <script type="text/javascript" src="Functions.js"></script>
</body>
</html>
  • 瀏覽器輸出結(jié)果
image.png

源碼二 使用 constructor 構(gòu)造方法實現(xiàn)

  • ts
//接著再在上面的 Person 類中增加一個 constructor 構(gòu)造方法

//創(chuàng)建一個最基本的類
class Person{
    //增加兩個屬性
    name:string;
    age:number;
    
    //新增一個構(gòu)造方法
    constructor(name:string,age:number){
        this.name = name;
        this.age = age;
    }

    //增加一個自定義的普通的輸出函數(shù)
    tell(){
        return this.name + ":" + this.age;
    }
}

//再新建一個擴展自 Person 這個類的子類
//這樣擴展之后 這個 Student 就也有了 name 和 age 兩個屬性,還用 tell 這個方法
class Student extends Person{
    //還可以給 Student 新增自己的屬性
    school:string;

    //這里因為 Person 有構(gòu)造方法如果子類不傳遞的話就會報錯待德,所以也要增加
    //這里參數(shù)直接傳遞這個子類自增的屬性即可 
    constructor(school:string){
        //再在內(nèi)部使用 super 的方法繼承來自 Person 父類中定義的方法 b并將相應(yīng)的參數(shù)傳遞進(jìn)去
        super('xiaochuan',22);
        this.school = school;
    }


    //這里還可以重寫繼承而來的方法
    tell(){
        return this.name + ":" + this.age + ":" + this.school;
    }
}

//這個時候使用這個子類時直接傳遞 school 的值即可
var s = new Student('北京大學(xué)');
//上面已經(jīng)通過構(gòu)造方法將所有的屬性值都已經(jīng)傳遞過了所以這里就不需要再傳遞了丁眼,可以直接輸出結(jié)果了
// s.name = 'xiaochuan';
// s.age = 22;
// s.school = '北京大學(xué)';

alert(s.tell());
  • HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TypeScript 類(Classes)的繼承</title>
</head>
<body>
    <script type="text/javascript" src="Functions.js"></script>
</body>
</html>
  • 瀏覽器輸出結(jié)果
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锨亏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子纵诞,更是在濱河造成了極大的恐慌上祈,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異登刺,居然都是意外死亡籽腕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門塘砸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來节仿,“玉大人,你說我怎么就攤上這事掉蔬±认埽” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵女轿,是天一觀的道長箭启。 經(jīng)常有香客問我,道長蛉迹,這世上最難降的妖魔是什么傅寡? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮北救,結(jié)果婚禮上荐操,老公的妹妹穿的比我還像新娘。我一直安慰自己珍策,他們只是感情好托启,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攘宙,像睡著了一般屯耸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蹭劈,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天疗绣,我揣著相機與錄音,去河邊找鬼铺韧。 笑死多矮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哈打。 我是一名探鬼主播塔逃,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼前酿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鹏溯,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤罢维,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肺孵,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡匀借,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了平窘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吓肋。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瑰艘,靈堂內(nèi)的尸體忽然破棺而出是鬼,到底是詐尸還是另有隱情,我是刑警寧澤紫新,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布均蜜,位于F島的核電站,受9級特大地震影響芒率,放射性物質(zhì)發(fā)生泄漏囤耳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一偶芍、第九天 我趴在偏房一處隱蔽的房頂上張望充择。 院中可真熱鬧,春花似錦匪蟀、人聲如沸窃款。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至态秧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铐达,已是汗流浹背秧饮。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留穗泵,地道東北人普气。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像佃延,于是被迫代替她去往敵國和親现诀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359