我们可以将IDisposable定义为抽象类而不是像下面那样的接口。有什么缺点?为什么IDisposable是一个接口,而不是抽象类?
public abstract class absDisposable
{
public abstract void Dispose();
}
public class childClass : absDisposable
{
SqlConnection objConnect = new SqlConnection("connstring");
public override void Dispose()
{
if (this.objConnect != null)
{
this.objConnect.Dispose();
this.objConnect = null;
}
}
}
我在同一个接口中编写了代码工作,否则就没有理由抽象类没有实现。这与我们定义Interface的方式相同,没有任何实现。但是,问题不仅仅是IDisposable,还涉及到我们使用的所有接口。为什么我们不简单地编写我们需要的方法,为什么我们要为实现接口再增加一个级别?因为Interface没有任何用处。我们总是必须在派生类中提供自己的实现,所以也没有代码可重用性的问题。以及接口如何解决C#中多重继承问题,如果我们不能重用代码?我想知道的是接口证明其存在的情况?
是什么?这是没有意义的。如果你需要从其他东西中派生出来怎么办? –
你为什么要这样? – Bazzz
这是否意味着,如果我不需要从其他任何东西派生出来,那么IDisposable可能是一个抽象类?或者,有没有其他的优势,不作为抽象类? – SAM