C#入门经典中的一句话
如果使用了override,也可以使用sealed指定在派生类中不能对这个方法做进一步修改,即这个方法不能由派生类重写,例如:
public class MyderivedClass:MyBaseClass
{
Public override sealed void DoSomething()
{ }
}非常的不理解,怎么看都觉的此处的override是多余的,有存在的必要性吗?谢谢
如果使用了override,也可以使用sealed指定在派生类中不能对这个方法做进一步修改,即这个方法不能由派生类重写,例如:
public class MyderivedClass:MyBaseClass
{
Public override sealed void DoSomething()
{ }
}非常的不理解,怎么看都觉的此处的override是多余的,有存在的必要性吗?谢谢
override显式声明该方法是重载过的方法且可以被子类重载
override和sealed修饰符做与运算,可以被重载,但密封.也就是不能重载.
1.C# 方法不显示告诉对方方法可以重载的情况下方法不可以被重载
2.如果方法被显示告诉可以重载(virtual..)的话,子类可以继承后继续重载这个方法
3.如果你想重载过某个方法后,让别人不再可以重载,这是override sealed的作用就来了.
class aa //基类
{
public virtual void bb()
{
}
}
class cc :aa
{
public override sealed void bb()
{
}
}
class dd : cc
{
public override void bb()//会提示错误,无法重写该方法
{
}
}
如果去掉sealed修饰符,dd中又可以重写bb方法,楼主应该明白了吧
sealed 是本方法密封,子类将不能重写此方法。
3.如果你想重载过某个方法后,让别人不再可以重载,这是override sealed的作用就来了.
我可以这样理解吗?
我重载了某个方法,不写override,这样别人继承后,不是也不能重载吗?何苦还要写override再加seal呢?