2016-07-23 8 views
0

私は、次の2ベースclases持っています:子クラスでクラスのプロパティをオーバーライド

class BaseHelper {} 

class BaseService{ 
    private model:BaseHelper; 
} 

を今私は特定のユースケースのためにBaseHelperとBaseServiceを実装し、私の財産にインスタンスを割り当てます。

class MyHelper extends BaseHelper{} 

class MyService extends BaseService { 
    private model = new MyHelper(); 
} 

私は様々な方法でこれを試みましたが、常にコンパイルエラーが発生しました。それはまったく可能ですか?もしそうなら、正しい構文は何ですか?

答えて

1

ここにいくつかの修正があります。まず、基本サービスのmodelアクセサをprotectedに変更します。基本クラスからフィールドを使用して、派生クラスで代わりに再宣言フィールドの次に

class BaseService{ 
    protected model: BaseHelper; 
} 

:これは、派生クラスは、このクラスのメンバーを使用することを可能にする

class MyService extends BaseService { 
    model = new MyHelper(); // Here you are using model from base class 
} 
関連する問題