三、TypeScript class 类

class 类

  • 类是面向对象语言程序设计中的概念,是面向对象编程的基础。
  • 类是创建对象的模板,是对现实生活中一类具有共同特征的事物的抽象
  • 类的内部封装了属性方法,用于操作自身的成员

示例

将每条狗看做一个对象,那他的属性就有 品种、颜色,方法(行为)舔、叫、吃。

class Dog {
    breed: string;
    color: string;
    lick(): void {
        console.log(`
        我仍认为我们作为一个舔狗的真正目的是为了拥有一份真诚的爱情,
        而不是为了爱情做一个真诚的舔狗。
        虽为舔狗,却有战狼之志,
        舔一人为小爱,舔百人为大爱,
        所谓大爱无疆。所以舔并不可耻!`);
    }
    eat(): void {
        console.log(`舔狗不配吃饭!!!`);
    }
    bark(): void {
        console.log(`宝 我今天去输液了 输的什么液 想你的夜`);
    }
}

// 创建实例
const dog = new Dog();
dog.breed='舔'
dog.color='金';
// 调用实例的方法
dog.lick()

构造函数

用关键字 constructor 定义,很遗憾不允许存在多个构造函数实现

class Dog {
    breed: string;
    color: string;
    //   constructor(){
    //   };
    // constructor(breed: string) {
    //     this.breed = breed;
    // }
    constructor(breed: string, color: string) {
        this.breed = breed;
        this.color = color;
    }
}

// 创建实例
const dog = new Dog('', '');

继承

子类Dog通过 extends 关键字 继承父类Animal,创建的dog的实例,便能够调用 run()方法。

class Animal {
    run(distance: number) {
        console.log(`跑了 ${distance}m`)
    }
}
class Dog extends Animal {
    breed: string;
    color: string;
    lick(): void {
        console.log(`我仍认为我们作为一个舔狗的真正目的是为了拥有一份真诚的爱情,而不是为了爱情做一个真诚的舔狗,虽为舔狗,却有战狼之志,舔一人为小爱,舔百人为大爱,所谓大爱无疆。所以舔并不可耻!`);
    }
    eat(): void {
        console.log(`舔狗不配吃饭!!!`);
    }
    bark(): void {
        console.log(`宝 我今天去输液了 输的什么液 想你的夜`);
    }
}

// 创建实例
const dog = new Dog();
dog.breed = '舔'
dog.color = '金';
// 调用实例的方法
dog.run(100);
TypeScript中的class是一种面向对象编程的概念,它允许我们创建具有属性和方法的自定义数据型。的定义方式和ES6的class基本相同。可以通过来创建对象,并且可以使用构造函数初始化对象的属性。还支持继承,一个可以继承另一个的属性和方法。 在TypeScript中,的定义方式如下所示: ```typescript class ClassName { property: type; constructor(parameter: type) { this.property = parameter; } method() { // code here } } ``` 其中,ClassName为名,property为属性名,type为属性的型,constructor为构造函数,用于初始化对象的属性,method为的方法。 例如,定义一个Person: ```typescript class Person { name: string; age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } sayHello() { console.log(`大家好,我是${this.name}`); } } // 使用创建对象 const p = new Person('孙悟空', 18); p.sayHello(); ``` 在继承方面,子继承父时,必须调用父的构造方法(如果子中也定义了构造方法)。例如: ```typescript class A { protected num: number; constructor(num: number) { this.num = num; } } class X extends A { protected name: string; constructor(num: number, name: string) { super(num); this.name = name; } } ``` 在上述代码中,X继承自A,并在构造方法中调用了父A的构造方法。 总结来说,TypeScriptclass提供了一种面向对象编程的方式,可以创建自定义的数据型,定义属性和方法,并支持继承。通过可以创建对象,并对对象进行操作和调用方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值