c#之new关键词——隐藏基类方法
当从基类继承了一个(非抽象成员时),也就继承了父类的实现代码。如果是virtual成员,可以override;另外一种方法也能隐藏父类的实现代码(虚成员和非虚成员都可使用):
定义与父类相同的方法名,加上关键词new
public class Parent{public void Fun(){Debug.log("我是爸爸");}public virtual void virtualFun(){Debug.log("我是妈妈");}}class Son:Parent{public new void Fun(){Debug.log("我是爸爸的儿子");}public new void virtualFun(){Debug.log("我是妈妈的儿子");}}
如果不加关键字,不会报错,会有警告提醒你加上(效果是一样的,若是无意写重可以改正):
效果:若是用父类定义的,依然调用父类的方法:
Parent person=new Son();person.Fun();//非虚方法person.virtualFun();//虚方法
运行结果:
与override的区别:如果是重写virtual方法(将virtualFun前面是new换成override),则会调用子类的方法:
转载于:https://www.cnblogs.com/ninomiya/p/9244085.html
c#之new关键词——隐藏基类方法相关推荐
- C++语言之一个派生类继承了所有的基类方法,但下列情况除外
一个派生类继承了所有的基类方法,但下列情况除外: 基类的构造函数.析构函数和拷贝构造函数. 基类的重载运算符. 基类的友元函数.
- C# - 类_使用新成员隐藏基类成员
1 using System; 2 3 namespace 类_使用新成员隐藏基类成员 4 { 5 // 基类 : Animal 6 public class Animal 7 { 8 // 基类的普 ...
- GDScript:关于派生类调用基类方法的一个注意事项
对于普通方法,在派生类中用"."+"方法名"的方式调用基类的方法,例如: 在基类中定义了一个do_something方法 #基类 func do_somethi ...
- C#根据工作经验来谈谈面向对象
C#面向对象的三大特性:封装.继承.多态. 这是一种特性,更是官方给我们的学习语法,但是我们根据过去的经验来思考一下, 到底什么是面向对象? 面向对象在我们实际开发中到底起着什么作用? 我们什么时候要 ...
- C#中类的继承 override virtual new的作用以及代码分析
继承中override virtual new的作用 virtual 父类中需要注明允许重写的方法: override 子类中必须显示声明该方法是重写的父类中的方法: new 子类中忽略父类的已存在的 ...
- .net面试问题汇总(转)
用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也称为是持久层,其 ...
- C#学习笔记(八)——定义类的成员
一.成员的定义 1.定义字段 class Myclass{public int MyInt;} 可以使用readonly关键字,表示这个字段只能在执行构造函数的过程中赋值,或者由初始化语句赋值. 静态 ...
- 2011面试题大汇总
用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也 称为是持久层, ...
- C#中的OOP相关概念
一:类 1. 类的定义: 类是对一组具有相同属性和行为的对象的抽象: 2. 类的构成: 1) 声明类:类的默认修饰符为internal ...
- 跟小静读CLR via C#(05)- 访问限定、数据成员
跟小静读CLR via C#(05)- 访问限定.数据成员 今天跟大家分享一下关于访问限定和数据成员的知识.主要包括以下两点: Abstract, sealed, virtual, new, over ...
最新文章
- Unity与C#创建一个3D平台游戏 Learn to Create a 3D Platformer Game with Unity C#
- 特征工程在实际业务中的应用!
- SAP QM 执行事务代码QE01为检验批录入结果直接进入Multiple Specification标签页?
- 年增长率超50%,AI芯片竞争白热化
- 剪切粘贴时总是上次的内容_macOS系统上面如何实现Windows上的“剪切”功能
- shiro.ini实现授权
- 编译tslib1.4出现错误undefined reference to rpl_malloc错误
- 合并二叉树—leetcode617
- 如何分割合并ISO文件
- ECSHOP 如何去掉配送区域
- Windows程序中的Lib和Dll文件
- android 加载中自定义控件,Android 自定义一款炫酷的加载控件
- 企业短信平台发展趋势和展望——SUBMAIL赛邮
- 程序员必看:7个接外包私活网站
- 制作字幕.html教程,如何制作电影字幕,视频字幕制作软件|免费给视频加字幕
- 嵌入式系统架构设计师的理解
- 2018年个人学习计划总结
- 2017年总结,2018新开始
- excel2010将数字变成以文本存储的数字
- #442 不叁不肆:独居,阳了,没事,快好了
热门文章
- eclipse如何添加Memory Analyzer
- Controller比较两个对象discs、outlets中的元素是否相等。相同则相应的checkbox为checked...
- latex for wordpress(一)
- Spring对字段和集合的注入---依赖注入
- matlab图像分割算法源码
- 最新消息:苹果M1芯片为何如此之快?
- VisualBox 克隆CentOS 7.6 后,ip,源,禁止root远程登录,主机,防火墙,ssh密钥登录
- Mac上有什么实用的必备软件?
- 发力多人在线游戏!PS5有望2020年E3展会亮相!
- vue-admin自定义后台管理系统(二)之vue-cli3创建前端项目