三、TypeScript class 类

788 阅读2分钟

这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战

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);