c#方法重写和隐藏的学习示例
发布时间:2022-12-24 14:20:12
标签:方法重写
最近正在学习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/


猜你喜欢
- 最近滑动验证码在很多网站逐步流行起来,一方面对用户体验来说,比较新颖,操作简单,另一方面相对图形验证码来说,安全性并没有很大的降低。当然到目
- 前言为什么要动态设置字体大小?由于项目面对的是中老年客户项目中自带的字体无法满足客户需求。Android应用字体大小默认随系统设置的字体大小
- Android系统支持的颜色是由4个值组成的,前3个为RGB,也就是我们常说的三原色(红、绿、蓝),最后一个值是A,也就是Alpha。这4个
- 前言最近在研究串口通讯,其中有几个比较重要的概念,RS-232这种适配于上位机和PC端进行连接,RS-232只限于PC串口和设备间点对点的通
- 实现功能权限校验的功能有多种方法,其一使用 * 拦截请求,其二是使用AOP抛异常。 首先用 * 实现未登录时跳转到登录界面的功能。注意这里没
- 前言我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的。命令版本:10分钟学会Visual S
- C#查看堆栈通常是在异常处理中,出现异常之后通过异常的堆栈可以很方便的得到出现这个错误的代码调用路径。这个很有用,是否可以在没有异常出现时使
- 本文实例讲述了C#将制定目录文件名转换成大写的方法。分享给大家供大家参考。具体如下:using System;using System.IO
- 本篇文章基于redisson-3.17.6版本源码进行分析一、主从redis架构中分布式锁存在的问题1、线程A从主redis中请求一个分布式
- 在Java中创建一个线程有两种方法:继承Thread类和实现Runnable接口。下面通过两个例子来分析两者的区别:1)继承Thread类p
- 前言最近公司要把百度地图集成的项目中,于是我就研究了一天百度地图的SDK,当前的版本:Android SDK v3.0.0 。 虽然百度地图
- 这篇文章主要介绍了Java多线程状态及方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 查询返回Map<String,Object>类型mybatis 查询返回Map<String,Object> 类型,
- 适配器模式是一种重要的设计模式,在 Android 中得到了广泛的应用。适配器类似于现实世界里面的插头,通过适配器,我们可以将分属于不同类的
- Toast一般用来显示一行文字,用法比较固定:Toast.makeText(Context context,String message,i
- 本文实例讲述了Android中系统自带锁WalkLock与KeyguardLock用法。分享给大家供大家参考,具体如下:WalkLock -
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:private SystemBarTintManager tintManager;@Ov
- 三种得到LinearInflater的方法a. LayoutInflater inflater = getLayoutInflater();
- 作者: juky_huang 事件的简单解释: 事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如
- 1、JDK:Java Development Kit,java开发工具包。http://www.oracle.com/technetwork