首页 > 其他 > 详细

[C#] new 和 override 关键字

时间:2014-03-11 08:20:39      阅读:520      评论:0      收藏:0      [点我收藏+]

C#要想实现函数的override,要求和C++一样,父类的函数必须用virtual关键字注明,随后在子类中用override关键字表明重写的函数。

子类同名函数定义时,如果什么都不写,或者使用new 关键字,效果都表示父类的同名函数将被隐藏。

也就是说,子类有子类的函数,父类有父类的函数,进水不犯河水。

需要注意的是:若B是A的子类,我们通过 A a = new B()的方式实例化一个B的实例,调用那个函数仍然是调用A的中的函数。

一个简洁的例子:

bubuko.com,布布扣
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PolymophismTest
{
    class Program
    {
        static void Main(string[] args)
        {
            A btest = new B();
            btest.F(); //输出"B.F"
            btest.G(); //输出"A.G"
        }
    }

    public class A
    {
        public virtual void F()
        {
            Console.WriteLine("A.F");
        }
        public void G()
        {
            Console.WriteLine("A.G");
        }
    }
    public class B : A
    {
        public override void F()
        {
            Console.WriteLine("B.F");
        }
        public new void G()
        {
            Console.WriteLine("B.G");
        }
    }
}
bubuko.com,布布扣

[C#] new 和 override 关键字,布布扣,bubuko.com

[C#] new 和 override 关键字

原文:http://www.cnblogs.com/felixfang/p/3591122.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!