C#中virtual和abstract的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中virtual和abstract的区别相关的知识,希望对你有一定的参考价值。
virtual表示成员可以在派生类中被重写。如果派生类没有重写,则直接使用父类的原始成员。默认情况下,非virtual的方法不能被重写。
virtual 修饰符不能与 static、abstract,
private 或 override 修饰符一起使用。
除了声明和调用语法不同外,virtual属性的行为与抽象方法一样。
abstract表明成员是一个抽象的。其特点:
1。抽象类不能实例化。
2。抽象类可以包含抽象方法和抽象访问器。
3。从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。 参考技术A virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。
(1)virtual修饰的方法必须有实现(哪怕是仅仅添加一对大括号),而abstract修饰的方法一定不能实现。
(2)virtual可以被子类重写,而abstract必须被子类重写。
(3)如果类成员被abstract修饰,则该类前必须添加abstract,因为只有抽象类才可以有抽象方法。
(4)无法创建abstract类的实例,只能被继承无法实例化。本回答被提问者和网友采纳
java 中abstract和virtual的区别是啥?有啥用处?
如题,java 中abstract和virtual的区别是什么?有什么用处?
sorry,是C#
虚方法:由virtual声明,它允许在派生类中被重写,要重写方法,必须先声名为virtual
public class myclass
public virtual int myint()
函数体;
class myclass1:myclass
public override int myint()
函数体1;
抽象类、抽象函数:由abstract声明,在抽象类中可以定义抽象方法,抽象方法基本没有执行代码,派生类必须重写它,提供其执行代码
public abstract class myclass
public abstract int myint();
public class myclass1:myclass
public override int myint()
函数体;
两者不同本回答被提问者采纳 参考技术B java中virtual关键字么?
我没用过。 参考技术C java中没有virtual关键字!
以上是关于C#中virtual和abstract的区别的主要内容,如果未能解决你的问题,请参考以下文章