new 与 override 的区别?

ainidewangziguilai 2008-07-22 11:38:44
new 与 override 的区别?
...全文
89 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuadam 2008-07-23
  • 打赏
  • 举报
回复
楼主你贴的这个例子好像是我写的啊

在这里之所以利用接口来解决孙子找爷爷要钱的问题是因为,接口和类在继承连的处理上不太相同
donghai83 2008-07-23
  • 打赏
  • 举报
回复
override是重写基类的方法;
new关键字用作隐藏其基类的该方法.
fuadam 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 symbol441 的回复:]
override是重写父类方法的一个关键字.
而new只是为了在覆盖父类方法时不让编译器会产生警告
[/Quote]
new不仅仅是不让编译器产生警告,还可以开始新的继承链 new virtual
Adechen 2008-07-23
  • 打赏
  • 举报
回复
override是重写基类的虚方法,new 是自己的方法隐藏基类中的同名方法,
个人看法,仅参考
symbol441 2008-07-23
  • 打赏
  • 举报
回复
override是重写父类方法的一个关键字.
而new只是为了在覆盖父类方法时不让编译器会产生警告
fuadam 2008-07-23
  • 打赏
  • 举报
回复
你现在理解了,我这么写的用意了吗
cheng_feng001 2008-07-23
  • 打赏
  • 举报
回复
关注
ainidewangziguilai 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fuadam 的回复:]
楼主你贴的这个例子好像是我写的啊

在这里之所以利用接口来解决孙子找爷爷要钱的问题是因为,接口和类在继承连的处理上不太相同
[/Quote]
是的啊!不好意思啊!没有经过你的同意啊!
zhang95599 2008-07-22
  • 打赏
  • 举报
回复
不加new那么编译器会产生警告....c#和谐了....c++和java就麻烦了....
qjlsharp 2008-07-22
  • 打赏
  • 举报
回复
override就是覆盖掉你类的方法,使用自己子类的方法,new就是子类新建一个方法
ainidewangziguilai 2008-07-22
  • 打赏
  • 举报
回复
刚刚没有加例子不好说明!不好意思啊!


Class 爷爷
{
public virtual void RequestMoney()
{
.........
}
}
Class 爹:爷爷
{
public override void RequestMoney()
{
.........
base.RequestMoney();
}
public void AskYourGrandFather()
{
base.RequestMoney();
}
}
Class 儿子:爹
{
public override void RequestMoney()
{
.........
base.AskYourGrandFather();
}
}




interface IRequestMoney
{
void RequestMoney();
}
class GrandFather : IRequestMoney
{
public void RequestMoney()
{
"GrandFather".PrintLine();
}
}
class Father : GrandFather
{
public new void RequestMoney()
{
"Get Money From Father".PrintLine();
base.RequestMoney();
}
}
class Son : Father
{
public new void RequestMoney()
{
IRequestMoney money = this;
this.RequestMoney();
}
}

请各位高手帮忙解决一下!谢谢了!
atlasroben 2008-07-22
  • 打赏
  • 举报
回复


override是重写基类的方法,同时基类的该方法必须标记为允许其派生类重写。而new关键字用作隐藏其基类的该方法,用new的新方法来代替原有方法。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧