ts类和继承

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/themagickeyjianan/article/details/87895325
/**
 * 类基础
 */
class Person {

    // 类的成员属性
    private _name: string = "";
    age: number = -1;
    interestes: string[] = [];

    // 好处是可以提前过滤
    set name(n: string) {
        this._name = n;
    }

    get name(): string {
        return this._name;
    }

    constructor(n: string, a: number, i: string[]){
        this.name = n;
        this.age = a;
        this.interestes = i;
    }

    // 类的实例方法
    say(): void {
        console.log("name:", this.name, "age:", this.age, "interestes:", this.interestes);
    }
}

//
class Student extends Person {
    schoolName: string = "";

    constructor(name: string, age: number, interestes: string[], schoolName: string){
        super(name, age, interestes);
        this.schoolName = schoolName;
    }

    say(): void {
        console.log("\nname =", this.name, "\nage =", this.age, "\ninterestes =", this.interestes, "\nmy school name =", this.schoolName);
        console.log("\nname =", this.name, "\nage =", this.age, "\ninterestes =", this.interestes, "\nmy school name =", this.schoolName);
    }

}

//
let p = new Student("jn", 26, ["node.js", "c++ lua"], "许昌");
p.say();


/**
 * 静态数据成员
 */

class Animal {

    public static _name: string = "";

    static eat(e: string): void {
        console.log(Animal._name, "eat something");
    }
}

Animal._name = "dog";
Animal.eat("meat");

猜你喜欢

转载自blog.csdn.net/themagickeyjianan/article/details/87895325