C#中虚函数跟抽象函数有什么用,怎么去区别
2012-12-01 10:21
316 查看
这个问题,你要明白:
1.虚方法其目的就是为了重写,但它可以有自己的实现部分。
2.抽象方法:其名为抽象,很好理解,其不能提供具体的实现,只是一个可重写的(隐性的)虚方法的(可以理解为接口)模版。
3.这两个方法都是为了再次重写和实现,所以都不能密封
C#的重载:普通的重载是通过方法的参数个数,参数顺序,参数的类型来区分同名的方法。
在实现多态的时候,对基类方法的重载是函数重载的另一种形式,在派生类中重新定义次虚方法时,要求的是方法名称,返回值类型,参数表中的参数个数,类型,顺序都必须与基类的虚函数完全一致,加上关键字override
虚函数与抽象办法的区别:虚方法是加上virtual 抽象方法是加上abstract
虚方法可以有声明部分,抽象方法没有
例:public abstract void speak(); //抽象方法
public virtual void speak(){
console.writeline("你好");
}
抽象方法只能在抽象类里声明
继承的时候,抽象方法和虚方法都是用关键字override重载的
1.虚方法其目的就是为了重写,但它可以有自己的实现部分。
2.抽象方法:其名为抽象,很好理解,其不能提供具体的实现,只是一个可重写的(隐性的)虚方法的(可以理解为接口)模版。
3.这两个方法都是为了再次重写和实现,所以都不能密封
C#的重载:普通的重载是通过方法的参数个数,参数顺序,参数的类型来区分同名的方法。
在实现多态的时候,对基类方法的重载是函数重载的另一种形式,在派生类中重新定义次虚方法时,要求的是方法名称,返回值类型,参数表中的参数个数,类型,顺序都必须与基类的虚函数完全一致,加上关键字override
虚函数与抽象办法的区别:虚方法是加上virtual 抽象方法是加上abstract
虚方法可以有声明部分,抽象方法没有
例:public abstract void speak(); //抽象方法
public virtual void speak(){
console.writeline("你好");
}
抽象方法只能在抽象类里声明
继承的时候,抽象方法和虚方法都是用关键字override重载的
相关文章推荐
- c#中委托和直接函数调用用什么区别,好处和目的在哪?
- C#中虚函数和抽象函数的区别
- 怎么回答“在C#里这样和那样写有什么区别”
- C#中的String和string有什么区别?还有ref关键字怎么用?
- c# 中委托和直接函数调用用什么区别,好处和目的在哪?
- 虚函数和抽象函数有什么区别
- C#中虚函数和抽象函数的区别
- C语言里,main 函数中 return x和 exit(x) 到底有什么区别 ?
- oracle的nvl和nvl2是什么函数,两者区别是什么呢
- Static全局变量与普通的全局变量有什么区别?static函数与普通函数有什么区别?
- C#中的抽象方法和虚方法有什么区别?
- 在c#中怎么调用ExitWindowsEx函数实现XP的关机、注销、重启操作?
- 函数调用方式--__thiscall调用方式和__cdecl,__stdcall有什么区别
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- C#中F5和ctrl+F5的区别是什么?
- C#中的string与stringbuilder有什么区别
- WinForm 中的 Form_Load函数和他的构造函数 public Form()有什么区别?
- 虚函数和抽象函数有什么区别
- 什么是可重入函数和不可重入函数以及区别
- (转)C#为什么要使用Invoke,它和BeginInvoke有什么区别