转载 [c#] 虚函数(Virtual),抽象函数(abstract)和接口的区别

时间:2022-05-25 08:35:56

1.virtual:允许被重写,,但不强制要求。声明时提供其自身实现;
2.abstract:强制要求其继承者重写。声明时不提供其自身的实现,抽象类不能被实例化;
3.interface:接口就是协议,其声明的成员(属性,方法,事件和索引器)必须由其继承的类实现。接口不能直接被实例化。

虚方法与抽象方法的区别在于,虚方法提供自身的实现,并且不强制要求子类重写;而抽象方法不提供自身的实现,并且强制子类重写。

抽象类与接口很相似,但是思路不一样。接口是公开类的成员,而抽象类则是抽象类成员以要求子类继承并实现。