2016-09-21 59 views
-4

如果我想要任何類繼承/實現一些更好的方法,那麼接口或抽象類只包含這些抽象方法,並充當接口。我很瞭解接口和抽象類之間的區別,但在這種情況下,兩者是否具有相同的功能或者有不同的內容?在這種情況下的接口和抽象類

我認爲我們可以隨意使用其中的一個,但我仍然採取接口的一面,因爲我的目標是強制任何類來實現這些方法,這是接口的工作。

+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(); 
    } 
}