c#方法重写和隐藏的学习示例

 更新时间:2014年01月22日 10:26:36   作者:  
最近正在学习c#,对其中的方法重写和隐藏的概念很是模糊,现在将其归纳如下供大家参考

最近正在学习c#,对其中的方法重写和隐藏的概念很是模糊,现在将其归纳如下:

1:方法重写:就是在基类中的方法用virtual关键字来标识,然后在继承类中对该类进行重写(override),这样基类中的方法已经被重写了,已经失去了功能了。当让基类的对象的引用直接指向继承类的对象时(多态性),调用该方法则是调用的继承类的方法。

2:方法隐藏:无论基类中的方法是否用了virtual关键字,继承类中都可以用new关键字(如果不用new的话,不会产生错误,但会生成一个编译警告)将基类中的方法隐藏,所谓隐藏就是隐藏,不像重写,重写就是原来的(基类中)已经不存在了,而隐藏是原来的还存在。所以当让基类的对象的引用直接指向继承类的对象时(多态性),调用该方法则是调用的基类的方法。

代码如下:

复制代码 代码如下:

public class BaseClass
    {
        public void functionA()
        {
            Console.WriteLine("BaseFunctionA https://www.jb51.net/sosoft/");
        }
        public virtual void functionB()
        {
            Console.WriteLine("BaseFunctionB https://www.jb51.net/sosoft/");
        }
    }
   public class DerivedClass:BaseClass
    {
        public new void functionA()
        {
            Console.WriteLine("DerivedFunctionA https://www.jb51.net/sosoft/");
        }
        public override void functionB()
        {
            Console.WriteLine("DerivedFunctionB https://www.jb51.net/sosoft/");
        }
    }

当利用多态性执行下面代码时:

复制代码 代码如下:

BaseClass baseFunction=new DerivedClass();
baseFunction.functionA();
baseFunction.functionB();

得到的结果是:

复制代码 代码如下:

BaseFunctionA https://www.jb51.net/sosoft/
DerivedFunctionB https://www.jb51.net/sosoft/

相关文章

  • 手动编译C#代码的方法

    手动编译C#代码的方法

    在本文里小编给大家分享的是关于手动编译C#代码的方法和步骤,对此有需要的朋友们可以学习下。
    2018-12-12
  • C#判断数据类型的简单示例代码

    C#判断数据类型的简单示例代码

    本篇文章要是对C#中判断数据类型的简单示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#.NET 图片水印添加代码

    C#.NET 图片水印添加代码

    这篇文章主要为大家详细介绍了C#.NET 图片水印添加代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • C#仿QQ实现简单的截图功能

    C#仿QQ实现简单的截图功能

    这篇文章主要为大家详细介绍了如何利用C#语言模拟QQ实现屏幕选择区域截图功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-08-08
  • C#利用雪花算法实现生成ID工具类

    C#利用雪花算法实现生成ID工具类

    雪花算法表示生成的ID如雪花般独一无二,该算法源自Twitter,主要用于解决分布式系统的唯一Id生成问题,本文主要介绍了C#如何利用利用雪花算法实现生成ID,需要的可以参考下
    2023-12-12
  • C# Chart 简单使用教程

    C# Chart 简单使用教程

    Chart控件可以用来绘制波形图、柱状图、饼图、折线图等,用来进行数据表现是很不错的,现在简单说一下这个控件的使用方法,对C# Chart使用相关知识感兴趣的朋友一起看看吧
    2022-11-11
  • js substr,substring与java substring和C# substring的区别解析

    js substr,substring与java substring和C# substring的区别解析

    本篇文章主要是对js中substr,substring与java中substring和C#中substring的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • Unity3D动态生成平面网格

    Unity3D动态生成平面网格

    这篇文章主要为大家详细介绍了Unity3D动态生成平面网格,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • C#程序启动项的设置方法

    C#程序启动项的设置方法

    这篇文章主要为大家详细介绍了C#程序启动项的设置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • C# FileStream简单介绍和使用

    C# FileStream简单介绍和使用

    这篇文章主要为大家详细介绍了C# FileStream基本功能和使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05

最新评论