TypeScript-继承

下面的例子是使用TypeScript语法来实现Programer类 继承 Person

TypeScript语法:

/**
 * Created by liujun on 2017/12/29.
 */
/**
 * 1.定义一个类
 */
class Person{
    // let name:string; //这个会报错,不能有let声明
    /**
     * 2.定义变量
     */
    name:string;
    age:number;

    /**
     * 3.定义构造函数
     * @param name
     * @param age
     */
    constructor(name:string,age:number){
        this.name=name;
        this.age=age;
    }

    /**
     * 定义方法
     * @returns {string}
     */
    getName():string{
        return this.name;
    }

}

/**
 * 2.定义一个Programer类 并且继承 Person类
 */
class  Programer extends Person{

    job:string;

    constructor(name:string,age:number,job:string){
        //调造用父亲Persion的构器
        super(name,age); // super 要放在 this 前面
        this.job=job;
    }

    //定义个新的方法
    getJob():string{
        return this.job;
    }

}

/**
 * 3.新建一个 Programer 类
 */
let programer:Programer=new Programer('jack',20,'前端开发');
console.log(programer.getName());
console.log(programer.getJob());

编译成ES5语法

// 实现继承的私有函数
var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};

/**
 * Created by liujun on 2017/12/29.
 */
/**
 * 1.定义一个类
 */
var Person = (function () {
    /**
     * 3.定义构造函数
     * @param name
     * @param age
     */
    function Person(name, age) {
        this.name = name;
        this.age = age;
    }
    /**
     * 定义方法
     * @returns {string}
     */
    Person.prototype.getName = function () {
        return this.name;
    };
    return Person;
}());


/**
 * 2.定义一个Programer类 并且继承 Person类
 */
var Programer = (function (_super) {
    //调用实现继承的函数
    __extends(Programer, _super);
    function Programer(name, age, job) {
        //调用父亲Persion的构器
        _super.call(this, name, age); // super 要放在 this 前面
        this.job = job;
    }
    //定义个新的方法
    Programer.prototype.getJob = function () {
        return this.job;
    };
    return Programer;
}(Person));


/**
 * 3.新建一个 Programer 类
 */
var programer = new Programer('jack', 20, '前端开发');
console.log(programer.getName());
console.log(programer.getJob());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值