C#基础知识四之override和new的区别
override
- override是派生类用来重写基类方法的。调用的派生类方法,如需调用基类方法用base关键字
- override不能重写非虚方法或静态方法。
- override重写必须用abstract、override、virtrual修饰的方法。
new
- new 是派生类用来隐藏基类方法的,在派生类中看不到基类方法,但调用的还是基类的方法。
- 如果在派生类中要隐藏基类方法而不用new关键字,编译时会出现一个警告,提示如果是要隐藏基类中的方法,请使用new关键字。
- new可以隐藏基类中的普通方法也可以是虚方法。
- 如果在派生类中用private来修饰new 方法,那么只在该派生类中隐藏了基类中的方法,在该派生类之外,相当于没有隐藏基类中的方法;
- 如果在派生类中隐藏了基类中的方法,在该派生类的派生类中,将延续对该派生类对基类方法的隐藏。
public class Program{static void Main(string[] args){A a = new A();a.Test();B b = new B();b.Test();A c = new B();c.Test();A d = new C();d.Test();Console.ReadLine();}}public class A{public virtual void Test(){Console.WriteLine("A Test()");}}public class B : A{private new void Test(){Console.WriteLine("b Test()");}}public class C : B{public override void Test(){Console.WriteLine("C Test()");}}
转载于:https://www.cnblogs.com/liujie2272/p/5407628.html
C#基础知识四之override和new的区别相关推荐
- 跳槽者、应届生必看JAVA面试题系列 - JAVA基础知识(四)
一: 前言 莫等闲,白了少年头,空悲切. 二: 面试挑战 在文章开始前,首先安利下"面试挑战": 凡是满足下面的挑战条件的,如果一个月内没有拿到一个Offer的,免费提供简历封 ...
- (七)JS基础知识四(搞定异步)【三座大山之三,必考!!!】
JS基础知识四(异步) 提问 单线程 应用场景 callback hell和promise 提问 同步和异步的区别是什么 手写用Promise加载一张图片 前端使用的异步的场景有哪些 单线程 JS是单 ...
- C# 基础知识 (四).C#简介及托管代码
暑假转瞬即逝,从10天的支教生活到1周的江浙沪旅游,在这个漫长的暑假中我经历了很多东西,也学到了很多东西,也认识到了很多不足之处!闲暇之余我准备重新进一步巩固C#相关知识,包括C#入门 ...
- post获取重定向的链接 python_【转载】python面试基础知识(四) 网络部分
最近,小编在整理python面试基础知识,看了很多博客.文章和咨询了一些大厂公司大牛.了解到,在python面试的时候,不仅要求你有项目经验,还要考试代码呢!今天,小编和大家分享一下python面试基 ...
- Java基础知识(四) 基本类型与运算
Java基础知识 基本类型与运算 1. Java提供了哪些基本数据类型 2. 什么是不可变类 3. 值传递与引用传递的区别 4. Math类中的round.ceil和floor方法的功能各是什么 5. ...
- OpenGL基础知识(四)
今天将继续修改OpenGL基础知识(三)中的例子,并进行了一些简单的动画绘制.在编写代码之前先介绍一下函数glutTimerFunc(unsigned int msecs,void (*func) ( ...
- gddr6速率_显卡GDDR6显存基础知识:显存GDDR6和GDDR5区别对比科普篇
NVIDIA为我们发布了全新一代RTX20系显卡,不仅为我们带来了光线追踪.DLSS等全新技术,还搭配了全新一代GDDR6显存,而在10系列只是GDDR5或GDDR5X显存.今天装机之家帮大家科普一下 ...
- Android学习之基础知识四-Activity活动7讲(活动的启动模式)
在实际的项目开发中,我们需要根据特定的需求为每个活动指定恰当的启动模式.Activity的启动模式一共有4种:standard.singleTop.singleTask.singleInstance. ...
- java class 字符串_java基础知识四 math类 字符 字符串 控制台输入输出 StringBuilder与StringBuffer...
第四章:数学函数.字符和字符串 math类 Math是final类:在java.lang.Math中,所有数学函数都是静态方法 在一个java程序中,java.lang包中的所有类是隐式导入的. 三角 ...
- 工业通讯 | Profinet协议基础知识(四)
四.PROFINET设备实现 1.PROFINET 设备开发流程 PROFINET 设备开发流程 开会确定开发方案: 前期的开发环境搭建: PROFINET设备的软硬件设计: 编写GSD文件,描述设备 ...
最新文章
- Python 基础 - Day 2 Assignment - ShoppingCart 购物车程序
- 深入理解Java注解Annotation之注解处理器
- C# 字段 属性 方法 三霸主齐上阵
- java程序设计复习题_java程序设计复习大全(100题及答案).doc
- C# 委托与事件(delegate)
- .Net 接入CAS 遇到的坑
- Matlab 画图函数
- NewH3C——PPP、WLAN
- deepin[idea添加桌面]
- 基于双目视觉的非标机械臂的空间定位流程(未完待续)
- JavaScript复习笔记
- 【探花交友】day06—即时通信
- js提取JSON数据中需要的那部分数据
- 密集预测任务的多任务学习综述
- 转载:徐家骏:我在华为工作十年的感悟
- 检测心电信号的p波的matlab代码,matlab心电信号R波检测程序.doc
- PCL1.9.0网盘资源分享(ALL IN ONE +PDB)
- Python【数学工具集项目】专栏——介绍(作者:CSDN用户(TDTX、philo42))【2021-07-09】
- LeetCode - 794 - 有效的井字游戏 - java
- 企业级自动化运维平台
热门文章
- Oracle删除重复记录三种方法
- c语言程序设计数字电位器,数字电位器X9C103 100级调节电路和单片机源程序
- Layer 提示框tips使用
- LINUX编译libusb
- NVIDIA官方指南:libav编译支持Nvidia Codec(结果失败)
- VirtualBox 6.1.4的共享剪贴板确实有问题,6.1.0正常
- 编译OpenJDK12:a microsoft compiler is required
- 汉代以前,鸳鸯是形容兄弟感情的,后来演变为男女感情
- 提供了一个UBUNTU安装NVIDIA驱动的脚本的下载
- 对即时通讯个人信息的一点想法