当从基类继承了一个(非抽象成员时),也就继承了父类的实现代码。如果是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关键词——隐藏基类方法相关推荐

  1. C++语言之一个派生类继承了所有的基类方法,但下列情况除外

    一个派生类继承了所有的基类方法,但下列情况除外: 基类的构造函数.析构函数和拷贝构造函数. 基类的重载运算符. 基类的友元函数.

  2. C# - 类_使用新成员隐藏基类成员

    1 using System; 2 3 namespace 类_使用新成员隐藏基类成员 4 { 5 // 基类 : Animal 6 public class Animal 7 { 8 // 基类的普 ...

  3. GDScript:关于派生类调用基类方法的一个注意事项

    对于普通方法,在派生类中用"."+"方法名"的方式调用基类的方法,例如: 在基类中定义了一个do_something方法 #基类 func do_somethi ...

  4. C#根据工作经验来谈谈面向对象

    C#面向对象的三大特性:封装.继承.多态. 这是一种特性,更是官方给我们的学习语法,但是我们根据过去的经验来思考一下, 到底什么是面向对象? 面向对象在我们实际开发中到底起着什么作用? 我们什么时候要 ...

  5. C#中类的继承 override virtual new的作用以及代码分析

    继承中override virtual new的作用 virtual 父类中需要注明允许重写的方法: override 子类中必须显示声明该方法是重写的父类中的方法: new 子类中忽略父类的已存在的 ...

  6. .net面试问题汇总(转)

    用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也称为是持久层,其 ...

  7. C#学习笔记(八)——定义类的成员

    一.成员的定义 1.定义字段 class Myclass{public int MyInt;} 可以使用readonly关键字,表示这个字段只能在执行构造函数的过程中赋值,或者由初始化语句赋值. 静态 ...

  8. 2011面试题大汇总

    用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也 称为是持久层, ...

  9. C#中的OOP相关概念

    一:类      1. 类的定义:           类是对一组具有相同属性和行为的对象的抽象:    2. 类的构成:          1) 声明类:类的默认修饰符为internal       ...

  10. 跟小静读CLR via C#(05)- 访问限定、数据成员

    跟小静读CLR via C#(05)- 访问限定.数据成员 今天跟大家分享一下关于访问限定和数据成员的知识.主要包括以下两点: Abstract, sealed, virtual, new, over ...

最新文章

  1. Unity与C#创建一个3D平台游戏 Learn to Create a 3D Platformer Game with Unity C#
  2. 特征工程在实际业务中的应用!
  3. SAP QM 执行事务代码QE01为检验批录入结果直接进入Multiple Specification标签页?
  4. 年增长率超50%,AI芯片竞争白热化
  5. 剪切粘贴时总是上次的内容_macOS系统上面如何实现Windows上的“剪切”功能
  6. shiro.ini实现授权
  7. 编译tslib1.4出现错误undefined reference to rpl_malloc错误
  8. 合并二叉树—leetcode617
  9. 如何分割合并ISO文件
  10. ECSHOP 如何去掉配送区域
  11. Windows程序中的Lib和Dll文件
  12. android 加载中自定义控件,Android 自定义一款炫酷的加载控件
  13. 企业短信平台发展趋势和展望——SUBMAIL赛邮
  14. 程序员必看:7个接外包私活网站
  15. 制作字幕.html教程,如何制作电影字幕,视频字幕制作软件|免费给视频加字幕
  16. 嵌入式系统架构设计师的理解
  17. 2018年个人学习计划总结
  18. 2017年总结,2018新开始
  19. excel2010将数字变成以文本存储的数字
  20. #442 不叁不肆:独居,阳了,没事,快好了

热门文章

  1. eclipse如何添加Memory Analyzer
  2. Controller比较两个对象discs、outlets中的元素是否相等。相同则相应的checkbox为checked...
  3. latex for wordpress(一)
  4. Spring对字段和集合的注入---依赖注入
  5. matlab图像分割算法源码
  6. 最新消息:苹果M1芯片为何如此之快?
  7. VisualBox 克隆CentOS 7.6 后,ip,源,禁止root远程登录,主机,防火墙,ssh密钥登录
  8. Mac上有什么实用的必备软件?
  9. 发力多人在线游戏!PS5有望2020年E3展会亮相!
  10. vue-admin自定义后台管理系统(二)之vue-cli3创建前端项目