c#抽象类虚拟方法

来源:百度知道 编辑:UC知道 时间:2024/05/13 23:20:18
“抽象类”“虚拟方法” 请详细解释下这两者的区别 小弟初学者不胜感激

顾名思义,一个是类,一个是方法,建议到百度百科先看看两者的定义,不是很难理解吧

楼上说的基本正确,但是对初学者来说是有误导的。

虚拟方法是标记为virtual,虚拟方法可以在子类/派生类中override(有的叫重写,有的叫过载)。
抽象方法标记为abstract,抽象方法没有方法体,抽象方法必须在子类/派生类中override(有的叫重写,有的叫过载)。

通俗的说就是普通方法告诉子类怎么做。虚拟方法告诉子类,这么做,如果你不满意,也可以那么做。而抽象方法是,怎么做我不管,反正你一定要去做。

而包含抽象方法的类必须标记为抽象类。直到它被继承并实现。所以你也不能把抽象类标记为sealed。
接口就不必标记为抽象类,接口内的方法也不必标记为抽象。因为他们全都是抽象的。

抽象类就是这个类只是一个抽像的定义没有写具体实现,抽像类中的成员是一定要重写的。

虚拟方法呢可以写实现也可以不写,当然可以重写也可以不重写

你是初学者不知道你是否理解什么是重写不?建议你呢还是认真看一些基础的书吧。