TypeScript访问继承类的方法和属性

时间:2018-05-01 08:57:18

标签: typescript inheritance

我有一个班级:

export class OneComponent {
  public name: string;
  public age = 5;
    speak() {
      console.log('speaking native language');
    }
    }

并有第二堂课:

import { OneComponent } from '../one/one.component';


export class TwoComponent extends OneComponent {
  constructor() {
    super();
    this.call();
    this.speak();
  }
  call() {
    console.log(this.age);
  }
 }

我使用'这个'从类TwoComponent中的类OneComponent访问speak()方法的单词。我也可以通过创建一个new()实例来实现它。可以有人解释我为什么我可以访问继承的类而不创建它的实例?我在互联网上搜索过,只有实例创建的例子。在哪种情况下,我应该创建一个新的实例,其中不应该?谢谢。

2 个答案:

答案 0 :(得分:0)

TwoComponent实例实际上是OneComponent的扩展/专用实例。因此,从TwoComponent的实例中,您可以访问在OneComponent

中定义的属性和方法

答案 1 :(得分:0)

当您创建派生类的实例时,您也要创建基类的实例。您在构造函数中看到对super()的调用?它调用继承类的构造函数来初始化它。

当然,继承类的实例也是派生类的实例。当你调用new TwoComponent()时,你正在创建该实例(在构造函数中由this常量反映)。该实例自动填充TwoComponent的属性,当然,它包括基类的所有属性/方法。