2016-09-21 2 views
-4

いずれかのクラスに継承または実装したい場合は、インタフェースが優れているメソッドまたは抽象クラスにこれらの抽象メソッドのみが含まれ、インターフェイスとして機能します。私はインターフェイスと抽象クラスの違いはよく分かっていますが、この場合、2つのクラスは同じ機能を持っているのでしょうか、あるいは別のものがありますか?この場合のインタフェースと抽象クラス

私はこれらのメソッドを実装するクラスを強制することを目的としているので、私はそれらのうちの1つを自由に使うことができますが、私はまだインターフェイスの側を取っていると思うし、それはインターフェイスの仕事です。

+0

インターフェイスと抽象クラスは非常に異なるものですいくつかの要素と一緒に無効にすることはできませんいくつかの共通の行動を結集するとき

抽象クラスがはるかに便利です。あなたが求めていることや解決しようとしている問題は本当に明確ではありません。 – David

+1

私はインターフェースの側面も取っています。私はあなたに挨拶します、兄弟!あなた自身の質問にちょうど答えたように聞こえる:要件に合ったものを使う。 –

答えて

0

私は具体的な振る舞いのない抽象クラスは少し無意味だと思うので、私はインターフェイスを好むでしょう。缶など)テンプレートメソッド

public abstract class Base 
{ 
    public void TemplateMethod() 
    { 
     AbstractMethod1(); 
     AbstractMethod2(); 
    } 

    public abstract void AbstractMethod1(); 
    public abstract void AbstractMethod2(); 
} 


public class Concrete : Base 
{ 
    public override void AbstractMethod1() 
    { 
     Console.Write("Override Abstract Method 1"); 
    } 

    public override void AbstractMethod2() 
    { 
     Console.Write("Override Abstract Method 2"); 
    } 
} 

public class Main 
{ 
    public Main() 
    { 
     var concrete = new Concrete(); 
     concrete.TemplateMethod(); 
    } 
} 
関連する問題