C#方法重写

什么是方法重写?

在一个项目中,子类中的一个方法想要与父类中的一个方法名称相同,但是子类中方法的逻辑不同与父类中方法的逻辑,在这里我们就可以使用方法重写
方法重写的前提是:父类方法必须是抽象方法或虚拟方法
方法重写相当于用子类中的方法将父类中的方法进行了隐藏,因此调用时只会调用子类中的方法
虚拟方法:虚拟方法的关键词为 virtual

        public virtual void Say() 
        {
            Console.WriteLine("这是父类中的虚构方法");
        }

而子类中重写的格式有两种
1.用关键词 override 来重写

        public override void Say()
        {
            Console.WriteLine("这是子类中重写的方法");
        }

2.用 new 关键词来重写

        public new void Say()
        {
            Console.WriteLine("这是子类中重写的方法");
        }

若没有用以上两种方法重写,虽不会报错,但是会有警告在这里插入图片描述
若在调用时仍想要调用父类中的方法可以

        public override void Say()
        {
            base.Say();   //如果使用base调用父类中的方法
        }

抽象方法:抽象方法的关键词为: abstrac
父类中抽象方法的写法稍有不同,若仍像虚构方法一样只改变了关键词,系统会报错误
在这里插入图片描述
由此我们可知:
(1)抽象方法不能声明主体
在这里插入图片描述
(2)抽象方法所在的类也应该声明为抽象的类
在这里插入图片描述
并且在子类中每继承了一个抽象类,子类中一定要进行重写父类中所有的抽象方法
可以总结为:在子类中虚构的方法不一定要重写,但抽象的方法必须进行重写

猜你喜欢

转载自blog.csdn.net/Layfolk_XK/article/details/106765895
今日推荐