2017-07-08 6 views
0

私は "A"と "B"という2つのメソッドを持つ基本クラスを持っています。サブクラスから関数を呼び出すスーパークラス

メソッド "B"は、ベースで "A"を呼び出します。それから私は "A"メソッドをオーバーライドするサブクラスを持っています。サブクラスからメソッド "B"を呼び出すと、メソッド "A"がベースから呼び出されます。

スーパークラスがオーバーライドされたメソッドをサブクラスから呼び出す方法はありますか?

export class SuperClass { 
    A(param: any): string { 
     return "A called from base"; 
    } 

    B(param: any): string { 
     let value = this.A(param); 
     console.log(value); 

     return "B called from base"; 
    } 
} 

export class SubClass extends BaseClass { 
    A(param: any): string { 
     return "A called from subclass"; 
    } 
} 

// create a subclass 
let bInstance = new B(); 
bInstance.B(someParam); // I want to call the overriden A in the subclass 

PD:基底クラス内の "A" は、独自の実装を持っている必要があり、

答えて

2

bInstance.B(someParam)抽象ことができません。 //私は サブクラスでオーバーライドAを呼び出したい

thisが​​とJSのインスタンスを指していることになるので、

それは、この上の方法Aを探していますオーバーライドされたメソッドサブクラスでA呼び出します。最初にインスタンス。だから、このコード:

B(param: any): string { 
    let value = this.A(param); 
    console.log(value); 

"A called from subclass";

+0

ああ...男、あなたは正しいのログを記録すべきである...私の悪い、私はちょうど... – arosgab

+0

問題はないが、基本クラスのインスタンスを作成して、私の答えをupvoteまたは受け入れることができます –

関連する問題