码迷,mamicode.com
首页 > 其他好文 > 详细

[TypeScript][文档]类

时间:2018-12-14 12:42:54      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:back   protect   style   str   属性   min   col   ack   extend   

一、继承

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和参数属性

 

[TypeScript][文档]类

标签:back   protect   style   str   属性   min   col   ack   extend   

原文地址:https://www.cnblogs.com/shenjie0507/p/10118243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!