来自基类的Typescript继承调用函数

时间:2018-10-03 16:11:49

标签: typescript oop inheritance

我正在使用继承通过基类和派生类拆分逻辑。

在以下情况下:

export class FirstClass{
constructor(){}

//consoleGivenMessage('dummy text');}

export class SecondClass extends FirstClass{
constructor(){
    super();
}

consoleGivenMessage(text:string){
    console.log(text);
}}

从基类调用函数的方式是什么?是否也应该在基类中实现“ consoleGivenMessage(text:string)”?

欢迎任何帮助

1 个答案:

答案 0 :(得分:1)

这个问题的简短答案是,您必须在consoleGivenMessage(text: string)中实现FirstClass,以便可以在FirstClassSecondClass的实例上调用它。

但是,还有更多-

通常,您从派生类中调用继承的方法,而不是相反。但是,您还可以具有一个基类,该基类依赖于在派生类中实现的抽象方法。

说,您有一个类A依赖于方法DoIt(),该方法仅在派生类B中实现,您必须声明A作为抽象类和DoIt()作为抽象方法;然后,在B(不是抽象的-这是具体的)中,您将实现方法DoIt()。

这也意味着您无法实例化A的对象,因为如果没有完整实现DoIt它就不会完成,而是可以实例化B的对象。但是,您可以定义A的对象,例如:const a: A = new B()。并且,您可以致电a.DoIt()。在这种情况下,实际上将调用B.DoIt()的实现。

Template Method design pattern中使用了此技术。

TypeScript类,继承和抽象类是well documented