TypeScript类

作者: 河的左岸 | 来源:发表于2017-07-26 08:11 被阅读25次

继承和多态

之前的JavaScript是基于原型(prototype)继承来实现可复用的“类”,而TypeScript是真正的实现了类,真正可以使用面向对象的编程思想。

class Animal {
    name:string;
    // Animal类的构造方法
    constructor(theName: string) { this.name = theName; }
    move(meters: number = 0) {
        console.info(this.name + " moved " + meters + "m.");
    }
}
// 继承
class Snake extends Animal {
    constructor(name: string) { super(name); }
    move(meters = 5) {
        console.info("Slithering...");
        super.move(meters);
    }
}
class Horse extends Animal {
    constructor(name: string) { super(name); }
    move(meters = 45) {
        console.info("Galloping...");
    }
}
let sam = new Snake("Sammy the Python");
let tom: Animal = new Horse("Tommy the Palomino"); 
sam.move();
tom.move(34);

Horse类继承了Animal类 并且重写了move方法,这样move()方法在不同的类中就具有不同的功能,这就是多态
派生类的构造函数必须调用super(),它会执行基类的构造方法。

修饰符

类中的修饰符有:public, private, protected三种类型。

class Animal {
    public name:string; // 谁都可以访问
    protected height:number; // 可在子类中访问
    private weight:number; // 仅能在Animal中访问
    // Animal类的构造方法
    constructor(theName: string) { this.name = theName; }
    move(meters: number = 0) {
        console.info(this.name + " moved " + meters + "m.");
    }
}

参数属性

如下例可以使用protected theName: string限定构造函数的参数,

class Animal {
    static type = {run:0, jump:1};  // 静态成员变量
    name:string;
    // Animal类的构造方法
    constructor(protected theName: string) { this.name = theName; }
    move(meters: number = 0) {
        console.info(this.name + " moved " + meters + "m.");
    }
}

抽象类

**简单来说,接口更注重功能的设计,抽象类更注重结构内容的体现。**
abstract class Animal {
    abstrack eat():void; // 必须在派生类中实现
    move(meters: number = 0) {
        console.info(this.name + " moved " + meters + "m.");
    }
}

相关文章

  • TypeScript——类

    对类的使用:

  • Typescript —— 类

    类: 上面生成的按钮,点击的结果是“Hello,world”,上面例子中声明一个Greeter类。这个类有3个成员...

  • TypeScript类

    继承和多态 之前的JavaScript是基于原型(prototype)继承来实现可复用的“类”,而TypeScri...

  • TypeScript类

    javascript提供构造函数和原型的方式来构造复用组件; TypeScript提供类的概念;共同点都要实例化;...

  • typescript 类

    日期: 2019 年 9 月2 日 类 类的例子 继承 基于类的程序设计中一种最基本的模式是允许使用继承来扩展现有...

  • TypeScript 类

    类常用的语法: extends与super private、public、protected、readonly g...

  • TypeScript——类

    传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就...

  • TypeScript -- 类

    一 ,继承和成员修饰符 注意:类的属性都是实例属性而不是原型属性;方法是原型上的;类里面的属性都需要有初始值 成员...

  • TypeScript 类

    类 对于传统的 JavaScript 程序我们会使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象...

  • TypeScript类

    下面看一个使用类的例子: 我们声明一个Greeter类。这个类有3个成员:一个叫做greeting的属性,一个构造...

网友评论

    本文标题:TypeScript类

    本文链接:https://www.haomeiwen.com/subject/tnknkxtx.html