我有一个班级:
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()实例来实现它。可以有人解释我为什么我可以访问继承的类而不创建它的实例?我在互联网上搜索过,只有实例创建的例子。在哪种情况下,我应该创建一个新的实例,其中不应该?谢谢。
答案 0 :(得分:0)
TwoComponent实例实际上是OneComponent的扩展/专用实例。因此,从TwoComponent的实例中,您可以访问在OneComponent
中定义的属性和方法答案 1 :(得分:0)
当您创建派生类的实例时,您也要创建基类的实例。您在构造函数中看到对super()
的调用?它调用继承类的构造函数来初始化它。
当然,继承类的实例也是派生类的实例。当你调用new TwoComponent()
时,你正在创建该实例(在构造函数中由this
常量反映)。该实例自动填充TwoComponent
的属性,当然,它包括基类的所有属性/方法。