2016-09-04 4 views
0

子クラスのメンバにアクセスし、子クラスを基本クラスから実行できますか?例えば子クラスの基本クラスからの関数へのアクセスと実行

class ChildClass extends BaseClass { 

    protected childMember = 'someName'; 

    constructor() { 
     super(); 
     super.runBaseFn(); 
    } 

    runChildFn() { 
     console.info('child fn'); 
    } 
} 

class BaseClass { 

    runBaseFn() { 
     if (child.childMember === 'someName') { 
      child.runChildFn(); 
     } 
    } 
} 

これはrunBaseFnのコードを達成することは可能ですか?または同様のソリューションですか?あなたは、親クラスでそれを宣言する必要があります

答えて

1

class BaseClass { 
    protected childMember: string; 

    runBaseFn() { 
     if (this.childMember === 'someName') { 
      this.runChildFn(); 
     } 
    } 

    protected runChildFn() {} 
} 

class ChildClass extends BaseClass { 
    constructor() { 
     super(); 

     this.childMember = 'someName'; 
     super.runBaseFn(); 
    } 

    runChildFn() { 
     console.info('child fn'); 
    } 
} 

code in playground

あなたは親クラスabstract作ることができます。

abstract class BaseClass { 
    protected childMember: string; 

    runBaseFn() { 
     if (this.childMember === 'someName') { 
      this.runChildFn(); 
     } 
    } 

    protected abstract runChildFn(); 
} 
関連する問題