日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

如何在 TypeScript 中使用類和繼承

來源: 責編: 時間:2023-10-18 17:58:37 283觀看
導讀“TypeScript是一種編程語言,它是JavaScript的超集。它通過添加靜態類型、類、接口和模塊等功能來擴展JavaScript”class Hero { name: string; age: number; constructor(name: string, age: number) { this.na

XDU28資訊網——每日最新資訊28at.com

TypeScript是一種編程語言,它是JavaScript的超集。它通過添加靜態類型、類、接口和模塊等功能來擴展JavaScriptXDU28資訊網——每日最新資訊28at.com

XDU28資訊網——每日最新資訊28at.com

class Hero {  name: string;  age: number;  constructor(name: string, age: number) {    this.name = name;    this.age = age;  }  say(): void {    console.log(`my name is ${this.name}`);  }}

在上面的代碼中,我們定義了一個名為Hero的類,它具有name和age屬性,以及一個say方法。構造函數用于初始化對象的屬性。XDU28資訊網——每日最新資訊28at.com

XDU28資訊網——每日最新資訊28at.com

通過類的定義,我們可以創建多個具有相同屬性和行為的對象,實現代碼的復用和封裝。XDU28資訊網——每日最新資訊28at.com

const Jieke = new Hero('jieke', 28)Jieke.say();  // 輸出:my name is jieke

繼承和子類

在面向對象編程中,繼承是一種重要的概念。通過繼承,我們可以創建一個類的子類(也稱為派生類),并繼承其屬性和方法。子類可以擴展或修改父類的功能,從而實現代碼的重用和擴展XDU28資訊網——每日最新資訊28at.com

在TypeScript中,我們使用extends關鍵字來指定一個類繼承自另一個類XDU28資訊網——每日最新資訊28at.com

class Superman extends Hero {  heroId: string;  constructor(name: string, age: number, heroId: string) {    super(name, age);    this.heroId = heroId;  }  skill(): void {    console.log(`${this.name}_${this.heroId}.`);  }}

我們定義了一個名為Superman的子類,它繼承自Hero父類。子類具有自己的屬性heroId,并通過調用super關鍵字來調用父類的構造函數。XDU28資訊網——每日最新資訊28at.com

創建子類的實例與創建父類的實例類似:XDU28資訊網——每日最新資訊28at.com

const s1 = new Superman("Batman", 20, "12345");s1.say();  // 輸出:my name is Batmans1.skill();  // 輸出:Batman_12345

限制類的屬性和方法的訪問

在TypeScript中,我們可以使用訪問修飾符來限制類的屬性和方法的訪問。以下是幾個常用的訪問修飾符XDU28資訊網——每日最新資訊28at.com

  • public(默認):可以在類內部和外部訪問。
  • private:只能在類內部訪問。
  • protected:可以在類內部和子類中訪問,但不能在類外部訪問。

通過使用訪問修飾符,我們可以控制類的成員的可見性,增強了封裝性和安全性XDU28資訊網——每日最新資訊28at.com

class Person {  public name: string;  private age: number;  protected gender: string;  constructor(name: string, age: number, gender: string) {    this.name = name;    this.age = age;    this.gender = gender;  }  say() {    console.log(`Hi, my name is ${this.name}.`);  }  private sayAge() {    console.log(`I am ${this.age} years old.`);  }}class Student extends Person {  constructor(name: string, age: number, gender: string) {    super(name, age, gender);  }  sayGender() {    console.log(`My gender is ${this.gender}.`);  }}const person = new Person("Tom", 18, "male");console.log(person.name); // "Tom"console.log(person.age); // Error: Property 'age' is private and only accessible within class 'Person'.console.log(person.gender); // Error: Property 'gender' is protected and only accessible within class 'Person' and its subclasses.const student = new Student("Jane", 20, "female");console.log(student.gender); // "female"

抽象類

在TypeScript中,我們還可以使用抽象類(abstract class)來定義一個不可實例化的基類。抽象類提供了一種模板,用于派生其他類,并定義了一些必須由子類實現的抽象方法。抽象類不能被直接實例化,只能被繼承XDU28資訊網——每日最新資訊28at.com

以下是一個抽象類的示例:XDU28資訊網——每日最新資訊28at.com

abstract class Role {    // 定義抽象屬性    abstract name:string;     abstract age:number;    // 定義保護屬性,每個繼承子類都能繼承并調用的屬性    protected lastPoint!: {x:number,y:number};    protected status!: "run" | "risk" | "die";    // 定義保護方法,每個繼承子類都能繼承并調用的方法    protected getLastPoint (lastPoint:{x:number,y:number}) {        this.lastPoint = lastPoint;    }    // 定義抽象方法,在子類中重寫來執行不同的任務    abstract attack():void;}

繼承抽象類的子類實例化對象通過調用同一抽象類規定的抽象方法,來實現了不同的操作,體現了類的多態XDU28資訊網——每日最新資訊28at.com

class antor extends Role {    // 重寫抽象屬性    name: string = "han";    age: string = 20;    // 重寫抽象方法    attack(): void {        console.log("正在被攻擊");    }    constructor () {        super();    }}


XDU28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-14000-0.html如何在 TypeScript 中使用類和繼承

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何讓你的Node.js應用程序處理數百萬的API請求

下一篇: 如何通過 REST API 和 Spring MVC 提取電視節目詳細信息?

標簽:
  • 熱門焦點
  • 天貓精靈Sound Pro體驗:智能音箱沒有音質?來聽聽我的

    這幾年除了手機作為智能生活終端最主要的核心之外,第二個可以成為中心點的產品是什么?——是智能音箱。 手機在執行命令的時候有兩種操作方式,手和智能語音助手,而智能音箱只
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 中國家電海外掘金正當時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態LT(ID:LingTai_LT)2023年,出海市場戰況空前,中國創業者在海外紛紛摩拳擦掌,以期能夠把中國的商業模式、創業理念、戰略打法輸出海外,他們依
  • 花7萬退貨退款無門:誰在縱容淘寶珠寶商家造假?

    來源:極點商業作者:楊銘在淘寶購買珠寶玉石后,因為保證金不夠賠付,店鋪關閉,退貨退款難、維權無門的比比皆是。“提供相關產品鑒定證書,支持全國復檢,可以30天無理由退換貨。&
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預警不絕,但處于厄爾尼諾大“烤”之下的除了眾生,還有各大企業發布的ESG報告。ESG是“環境保
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關心的“網紅”。7月5日至9日,為期5天的東方甄選“甘肅行”首次在自有App內直播,
  • iQOO 11S新品發布會

    iQOO將在7月4日19:00舉行新品發布會,推出杭州亞運會電競賽事官方用機iQOO 11S。
  • 引領旗艦級影像能力向中端機普及 OPPO K11 系列發布 1799 元起

    7月25日,OPPO正式發布K系列新品—— OPPO K11 。此次 K11 在中端手機市場長期被忽視的影像板塊發力,突破性地搭載索尼 IMX890 旗艦大底主攝,支持 OIS
  • AI藝術欣賞體驗會在上海梅賽德斯奔馳中心音樂俱樂部上演

    光影交錯的鏡像世界,虛實幻化的視覺奇觀,虛擬偶像與真人共同主持,這些場景都出現在2019世界人工智能大會的舞臺上。8月29日至31日,“AI藝術欣賞體驗會”在上海
Top 主站蜘蛛池模板: 加查县| 富阳市| 鞍山市| 内江市| 深水埗区| 正宁县| 当涂县| 南江县| 正定县| 曲靖市| 新安县| 固阳县| 分宜县| 北宁市| 锦州市| 顺义区| 长兴县| 苗栗县| 江山市| 临邑县| 图片| 突泉县| 惠安县| 诏安县| 高尔夫| 商都县| 台江县| 噶尔县| 临桂县| 广宁县| 饶河县| 左云县| 玉树县| 太和县| 阿荣旗| 龙泉市| 永寿县| 黑山县| 龙口市| 会东县| 克什克腾旗|