你可以允许继承类但不覆盖方法 [英] can you allow class to be inherited but method not overridden

查看:66
本文介绍了你可以允许继承类但不覆盖方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你可以允许继承类但是不覆盖的方法



can you allow class to be inherited but method not overridden

class abc
{

   public virtual void a()
    {
    }
}
class pqr:abc
{
    public override void a()
    {
    }
}





如何保护a()通过子类重写



how to protect a() to override by child class

推荐答案

您可以使用密封方法。



http://msdn.microsoft.com/en-us/library/aa645769%28v = vs.71%29.aspx [ ^ ]



JAFC
You can use sealed methods.

http://msdn.microsoft.com/en-us/library/aa645769%28v=vs.71%29.aspx[^]

JAFC


使用

密封修饰符 [ ^ ]


您的问题的第二版与第一版完全不同。



我是建议您阅读:继承和派生类 [< a href =http://msdn.microsoft.com/en-us/library/ms228387%28v=vs.90%29.aspxtarget =_ blanktitle =New Window> ^ ] 。



The second edition of your question totally differs from first one.

I'd suggest you to read this: Inheritance and Derived Classes[^].

Quote:

要覆盖的基本方法必须声明为虚拟,抽象或覆盖:无法以这种方式覆盖非虚拟或静态方法

The base method, which is to be overridden, must be declared as virtual, abstract, or override: it is not possible to override a non-virtual or static method in this way.





更多信息:

10.2.5静态和实例成员 [ ^ ]


这篇关于你可以允许继承类但不覆盖方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆