2 c# oop abstract-class interface
我有
public interface MyInterface
{
void Execute();
}
Run Code Online (Sandbox Code Playgroud)
和
public abstract class MyAbstractClass
{
public abstract void Execute();
}
Run Code Online (Sandbox Code Playgroud)
现在,当一个类实现它们时,抽象类和接口之间的区别是什么?当抽象类只有一个抽象方法时,何时以及什么是类实现它们的原因?
昨天在接受采访时我问过这个问题.我没有回答..
提前致谢
即使这是重复,我也会尝试为您澄清:
现在,当一个类实现它们时,抽象类和接口之间的区别是什么?
如果使用抽象类,区别在于您需要从抽象类继承然后重写抽象方法.
如果使用接口,则需要实现该方法,而不必继承此类,从而可以根据需要灵活地从另一个类继承
当抽象类只有一个抽象方法时,何时以及什么是类实现它们的原因?
不要考虑方法的数量,以便在一种或另一种之间进行选择,考虑在使用一种方法与另一种方法时所获得的权衡.
如果您决定使用抽象类,则派生类必须从您的抽象类继承才能工作,并且因为您只能从C#中的一个单元继承,所以您将对抽象类很紧密.
如果您实现了一个接口,您将能够从另一个类层次结构继承,换句话说,使用接口将为您提供最灵活的设计
现在抽象类非常有用,当你想编写一个基本的代码段时,你的子类将继承,在这种情况下,你将在你的子类中编写更少的代码efectivley重用抽象类中编写的代码.您还可以覆盖抽象方法以提供自己的实现
| 归档时间: |
|
| 查看次数: |
2446 次 |
| 最近记录: |