个性化阅读
专注于IT技术分析

TypeScript类的继承介绍 – TypeScript开发教程

上一章TypeScript教程请查看:TypeScript类的用法详解

继承是OOP语言的一个特性,它提供了程序从现有类创建新类的能力,它是从一个类获取另一个类的属性和行为的机制。继承成员的类称为基类,继承这些成员的类称为派生/子/子类。在子类中,我们可以覆盖或修改它的父类的行为。

在ES6之前,JavaScript使用函数和基于原型的继承,但是TypeScript支持来自ES6版本的基于类的继承。TypeScript通过extends关键字使用类继承。TypeScript只支持单级继承和多级继承。它不支持多重和混合继承。

语法

我们可以声明一个类继承,如下所示。

class sub_class_name extends super_class_name  
{  
        // 方法和属性
{  

为什么使用继承?

  • 我们可以将它用于方法覆盖(这样就可以实现运行时多态性)。
  • 我们可以使用它来实现代码的可重用性。

继承的例子

TypeScript继承

如上图所示,Audi是子类,Car是超类。这两个级别之间的关系是奥迪是一辆车。这意味着奥迪是一种汽车。

class Car {   
   Color:string     
   constructor(color:string) {   
      this.Color = color  
   }   
}   
class Audi extends Car {   
    Price: number  
    constructor(color: string, price: number) {  
        super(color);  
        this.Price = price;  
    }  
    display():void {  
        console.log("Color of Audi car: " + this.Color);  
        console.log("Price of Audi car: " + this.Price);  
    }  
}  
let obj = new Audi(" Black", 8500000 );  
obj.display();  

在上面的例子中,Audi类通过使用extends关键字扩展了Car类。这意味着Audi类可以包含Car类的所有成员。Audi类的构造函数使用特殊的关键字“super”来初始化它自己的成员和父类的属性。’ super关键字用于调用父构造函数及其值。

继承的类型

我们可以把继承分为五种类型。这些是:

  • 单继承
  • 多级继承
  • 多重继承
  • 分层的继承
  • 混合继承
TypeScript多种继承解释

注意: TypeScript只支持单级和多级继承。它不支持多重、分层和混合继承。

单继承

单继承最多可以从一个父类继承属性和行为。它允许派生/子类继承基类的属性和行为,从而支持代码的可重用性,同时我们还可以向现有代码添加新特性。单继承减少了代码的重复。

class Shape {   
   Area:number   
   constructor(area:number) {   
      this.Area = area  
   }   
}   
class Circle extends Shape {   
   display():void {   
      console.log("圆的面积: "+this.Area)   
   }   
}  
var obj = new Circle(320);   
obj.display()  

多级继承

当派生类派生自另一个派生类时,这种类型的继承称为多级继承。因此,一个多级继承具有多个父类。它类似于祖父、父亲和孩子之间的关系。

例子

class Animal {   
    eat():void {   
        console.log("Eating")   
     }   
}   
class Dog extends Animal {   
   bark():void {   
      console.log("Barking")   
   }   
}  
class BabyDog extends Dog{   
    weep():void {   
        console.log("Weeping")   
     }  
}  
let obj = new BabyDog();   
obj.eat();  
obj.bark();  
obj.weep()  

多重继承

当一个对象或类从多个父类继承特征和特性时,这种类型的继承称为多重继承。因此,多重继承从多个父类获取属性。TypeScript不支持多重继承。

分层的继承

当从单个基类继承多个子类时,这种类型的继承称为层次继承。在这里,所有在子类中常见的特性都包含在基类中。TypeScript不支持层次继承。

混合继承

当一个类继承了不止一种形式的继承的特征和特性时,这种类型的继承被称为混合继承。换句话说,它是多层继承和多重继承的结合。我们可以通过组合多种类型的继承来实现它。TypeScript不支持混合继承。

赞(1)
未经允许不得转载:srcmini » TypeScript类的继承介绍 – TypeScript开发教程

评论 抢沙发

评论前必须登录!