2016-09-21 58 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(); 
    } 
}