当前位置 : 主页 > 网络编程 > c#编程 >

C#关键字之覆写overwrite介绍

来源:互联网 收集:自由互联 发布时间:2023-01-31
一、简介 overwrite覆写,用new实现。在子类中用 new 关键字修饰定义的与父类中同名的方法,也称为覆盖,覆盖不会改变父类方法的功能。 二、代码 namespace 重寫{ class Parent { public void F

一、简介

overwrite覆写,用new实现。在子类中用 new 关键字修饰定义的与父类中同名的方法,也称为覆盖,覆盖不会改变父类方法的功能。

二、代码

namespace 重寫
{
    class Parent
    {
        public void F()
        {
            Console.WriteLine("Parent.F()");
        }
        //重写的属性必须是virtual、abstract或override
        public virtual void G() //虚方法
        {
            Console.WriteLine("Parent.G()");
        }
    }
    class ChildOne : Parent //子类一继承父类
    {
        new public void F() //覆写(overwrite)父类函数
        {
            Console.WriteLine("ChildOne.F()");
        }
        public override void G() //重写(override)父类虚函数,主要实现多态
        {
            Console.WriteLine("ChildOne.G()");
        }
    }

    class ChildTwo : Parent //子类二继承父类
    {
        new public void F()
        {
            Console.WriteLine("ChildTwo.F()");
        }
        public override void G()
        {
            Console.WriteLine("ChildTwo.G()");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Parent childOne = new ChildOne();
            Parent childTwo = new ChildTwo();
            //调用Parent.F()
            childOne.F();
            childTwo.F();
            //实现多态
            childOne.G();
            childTwo.G();
        }
    }
}

三、结果

重写子类的方法,但是不会覆盖父类的方法。

到此这篇关于C#关键字之覆写overwrite的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

上一篇:C#算法设计与分析详解
下一篇:没有了
网友评论