1、虚方法和抽象方法的区别?
2、如何区别覆盖和重载
3、显示实现接口和实现接口有什么区别?
2、如何区别覆盖和重载
3、显示实现接口和实现接口有什么区别?
解决方案 »
- 关于色彩渐变 GDI+
- C#中如何获取windows服务的所有信息 例如启动类型,服务描述
- 关于向DataTable插值的问题。
- 再问-----“在我的程序中如何实现一个数据缓存,别的程序可以写进来,我要在程序中维护这个数据并整理后写入数据库。数据量非常大”
- 标题:如何将数组从一个窗体传递到另一个窗体?
- 怎么在C#的循环如FOR循环里调用写在ASP。NET页面上的JAVASCRIPT函数?
- Math.Round()不能四舍五入的问题
- 求socket传递文件的例子!给地址或代码都可以!
- 大虾帮忙:关于dropdownlist的AUTOPOSTBACK已经设成true,但事件没反应??等待中~~
- 请教,多个ashx,只有两个能返回
- 关于域用户权限
- 一个关于SQL语句问题
1.>虚方法是可以在派生类中进行重写,但本身又具有方法体的函数成员
抽象方法只是提供了方法的签名,但不具有方法的实现.需要在派生类中进行覆写.
2.>覆写上面已经提到了,简单描述一下重载,所谓重载简单来说就是方法的签名不同,比如参数的个数,类型等
3.>实现接口,就是将从接口中的抽象方法进行实现.这里所指的实现就是使方法具有实际的执行行为.
显示实现接口的目的可能是避免区分接口间方法的名称的冲突。
建议lz动手实践一下,自然就明白了.
好有 就是
楼上说的还有点补充就是:抽象方法的问题,抽象方法必须在抽象类里面,也必须要 abstract 修饰
而且不同于接口的是: 接口都没有方法体 ,但是抽象类可以有!还有就是抽象类不可以被 static 修饰!
其他的一时半会想不到了,最好去试试,别看死书~ 实践出真理的!
.NET 2.0面向对象编程揭秘(附光盘)
http://product.dangdang.com/product.aspx?product_id=9338129&ref=search-0-A
很全,不想看MSDN的话,这个相当的全。里面就讲到这个问题了。现在好像出到 4.0了。
我这里拿Winform 下面的Control做例子,interface ICustomizedControl{
void Refresh();
void DisplayOn(Control container);
}
class ucLogin : Control,ICustomizedControl{
//ICustomizedControl接口中独有的方法,必须实现.
void DisplayOn(Control container){
container.Controls.Add(this);
}
//1,Control基类中已经存在Refresh()方法.这里可以不实现,或者显式实现,或者重写实现.
//virtual void Refresh(){}
//2或者显式实现接口.
ICustomizedControl.Refresh(){
//...
}
//3,或者重写基类中同名方法.
//void override Refresh(){...}
}class Form1:Form{
void LoadCustomizedControl(){
ICustomizeControl ctr = new ucLogin();
//这里如果显示实现了接口中的Refresh();
//则实际调用的是 ICustomizeControl.Refresh();
//否则调用的是Control.Refresh();
//当然,如果重写了这个方法,不管怎样,调用的都将是重写后的方法.
ctr.Refresh();
}
1.>虚方法是可以在派生类中进行重写,但本身又具有方法体的函数成员
抽象方法只是提供了方法的签名,但不具有方法的实现.需要在派生类中进行覆写.
2.>覆写上面已经提到了,简单描述一下重载,所谓重载简单来说就是方法的签名不同,比如参数的个数,类型等
3.>实现接口,就是将从接口中的抽象方法进行实现.这里所指的实现就是使方法具有实际的执行行为.
显示实现接口的目的可能是避免区分接口间方法的名称的冲突。
建议lz动手实践一下,自然就明白了.