C#中满足重写的条件有什么?

老师给提出这么个课后问题,还真不知道怎么回答... 老师给提出这么个课后问题,还真不知道怎么回答 展开
 我来答
仙戈雅3n
2015-03-13 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:891万
展开全部

父类必须有公共的虚方法,即使用了关键字virtual加以修饰,且访问修饰符不能是私有的,必须是public或protected的。所以满足重写的条件总结如下:


1、父类必须有公共(public)或受保护(protected)的虚方法(virtual); 

2、在派生类里使用override关键字来重写父类的虚方法。

 // 示例如下:
 public class Person {
        public virtual void SayHello() {
            Console.WriteLine("你好.");
        }
        protected virtual void SayHello2(){
          Console.WriteLine("你好.");
        }
    }

    public class AOBAMA:Person
    {
        override public void SayHello()
        {
            Console.WriteLine("Hello.");
        }

        override protected void SayHello2()
        {
            base.SayHello2(); // 调用父类的虚方法
            Console.WriteLine("Hello,重写后的方法.");
        }
    }
    class Program:AOBAMA 
    {
        static void Main(string[] args)
        {
            AOBAMA aobama = new AOBAMA();
            aobama.SayHello();

            Program p = new Program();
            p.SayHello2();  // 调用父类受保护的方法

            Console.ReadKey(true);
        }
    }
百度网友02cd4ce
2015-03-13 · TA获得超过516个赞
知道小有建树答主
回答量:709
采纳率:0%
帮助的人:716万
展开全部
1:抽象类中的抽象方法,继承类必须重写方法;
2:基类中的虚方法,继承类可以重写,可以不重写;
3:基类中普通方法,继承类使用new关键字重写;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tonalilili
2015-03-12 · TA获得超过1.6万个赞
知道大有可为答主
回答量:8050
采纳率:71%
帮助的人:3061万
展开全部
你百度搜索【c#重写】,看博客园那两个就懂了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式