2017-08-29 11 views
0

は、次のように私たちが活字体で抽象クラスを宣言したとします抽象クラスのサブクラスにはどのような制約がありますか?

export abstract class A { 

//my concrete method  
function add(x, y) { 
    return x + y; 
} 

//my abstract method 
abstract divide();  
} 

我々はAを拡張し、サブクラスBがある場合は、B上の制約は何ですか?より具体的には、BはAから継承しているので、add()を使って具体的なメソッドを既に持っており、divide()を持つ抽象メソッドメソッドがあることはわかっていますが、Bには継承されていないA.から、私はBではない)(POWを定義することができ、次のようにA.何かで抽象メソッドとして宣言:

export class B extends abstract class A { 

//my concrete method 
divide(){//implementation details go here}; 

//another concrete method? 
pow(){ 
    //insert imp details; 
} 

この質問は、私は上の2つの画面上でコードをリファクタリングしていたという事実によって動機づけられました2つのtsコンポーネントが同じコードを共有するAngular 2/4アプリです。私は、抽象クラスを作成し、共通コードを抽象クラスにプッシュし、いくつかの抽象メソッドを追加したいと思います。しかし、私は、それぞれの画面には、完全に独立しているので、これらの行に沿ってコードをリファクタリングするのは大丈夫/悪い/良い習慣であるかどうかを知りたいのです。ありがとう!

答えて

0

派生クラスは、基本クラスの抽象メソッドまたは非抽象メソッドをオーバーライドできます。彼らはまた、独自の方法を宣言することもできます。それはまあまあです。

+0

ありがとう!私はちょうど二重チェックしたいと思った。 – jrDeveloper

関連する問題