ts 类

55 阅读1分钟

类的继承

class Animal {
    name:string;
    constructor(name:string){
        this.name = name;
    }
    
    sayHello(){
        console.log(this.name);
    }
}

class Dog extends Animal {
    sayHello() {
        重写父类方法
    }
}

new Dog('tom');

类关键字super

继承父类的方法

class Animal {
    name:string;
    constructor(name:string){
        this.name = name;
    }
    
    sayHello(){
        console.log(this.name);
    }
}

class Dog extends Animal {
    age:number;
    constructor(name: string, age:number){
        super()
        this.age = age;
    }
}

new Dog('tom',12);

抽象类

类名前加abstract为抽象类,不可实例化调用。 抽象类中定义抽象方法,子类调用需要重写。

abstract class Animal {
    name:string;
    constructor(name:string){
        this.name = name;
    }
    
    abstract sayHello():void;
}

class Dog extends Animal {
    age:number;
    constructor(name: string, age:number){
        super()
        this.age = age;
    }
    
    sayHello(){
        console.log(this.age); //子类继承抽象类中的抽象方法需重写。
    }
}
new Animal('mmm');//报错,抽象类不可实例化;
new Dog('tom', 12);