[TypeScript][文档]类

一、继承

class Animal {
    name: string;
    constructor(theName: string) { this.name = theName; }
    move(distanceInMeters: number = 0) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}
class Snake extends Animal {
    constructor(name: string) { super(name); }
    move(distanceInMeters = 5) {
        console.log("Slithering...");
        super.move(distanceInMeters);
    }
}
class Horse extends Animal {
    constructor(name: string) { super(name); }
    move(distanceInMeters = 45) {
        console.log("Galloping...");
        super.move(distanceInMeters);
    }
}
let sam = new Snake("Sammy the Python");
let tom: Animal = new Horse("Tommy the Palomino");
sam.move();
tom.move(34);

【注】:子类的构造方法中,必须首先调用super(),这是强制执行的规则。

二、public、private、protected

1.public 公有

TypeScript中,成员默认为public

2.private 私有

当成员被标记成 private时,它就不能在声明它的类的外部访问,但是如果它被继承,子类里面还是有这个成员的,只是不能访问。

class Animal {
    private name: string;
    constructor(theName: string) { this.name = theName; }
}
new Animal("Cat").name; // 错误: 'name' 是私有的.

3.protected 保护

protected修饰符与 private修饰符的行为很相似,但有一点不同, protected成员在派生类中仍然可以访问。

【注】:构造函数也可以被标记成 protected。 这意味着这个类不能在包含它的类外被实例化,但是能被继承。

三、reanonly和参数属性

猜你喜欢

转载自www.cnblogs.com/shenjie0507/p/10118243.html
今日推荐