类可以继承,继承可以说是对父类抽象的一次细化,通常基类(父类)用于描述更一般、更通用的属性及方法,继承类(子类)则用来描述更具体、更特别的属性及方法。并且继承类可以重写基类的方法以完成对方法的重新定义:
class Phone{
owner : string; //定义了一个属性,用于描述电话的所有者
makeCall(phoneNumber : string) : void //定义了一个方法,用于完成电话的功能,即:打电话
{
console.log(this.owner, "make call to ", phoneNumber);
}
constructor(owner : string) //定义了构造函数,new类实例时调用
{
this.owner = owner; //在类的内部,需要通过this来访问类的成员,所以等号前面的this.owner访问的是先前定义的类属性;等号后面的owner访问的是构造函数的参数;这里没有规定构造函数的参数名必须与属性名一致的要求
}
}
class IPhone extends Phone{//IPhone继承于Phone
makeCall(phoneNumber : string) : void //重写了基类方法
{
console.log(this.owner, "make call to ", phoneNumber, " by IPhone");
}
}
class Android extends Phone{//Android继承于Phone
makeCall(phoneNumber : string) : void //重写了基类方法
{
console.log(this.owner, "mak