using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Newoverride
{
    class Dad
    {
        public Dad()
        {
            Console.WriteLine("Dad construtor");
        }
        public virtual void method()
        {
            Console.WriteLine("Dad method");
        }
    }
    class SmallSon : Dad
    {
        public SmallSon()
        {
            Console.WriteLine("Smallson construtor");
        }
        public override void method()
        {
            Console.WriteLine("override Smallson method");
        }
    }
    class BigSon : Dad
    {
        public BigSon()
        {
            Console.WriteLine("BigSon construtor");
        }
        public new void method()
        {
            Console.WriteLine("new BigSon method ");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Dad f = new Dad();
            f.method();
            Dad f1 = (Dad)new SmallSon();// 先初始化Dad(),然后再初始化SmallSon()
            f1.method();//override smallson method
            Dad f2 = (Dad)new BigSon();// 先初始化Dad(),然后再初始化Bigson()
            f2.method();// Dad method
            BigSon s = new BigSon();
            s.method();
           
        }
    }
}

2.从输出结果可知:
   第47行,先初始化基类再初始化子类构建器;
   第48行,利用override重写了基类方法,得到的是子类方法;
   第50行,利用new没有重写基类方法,得到的是基类方法;
   第51、52行,输出子类方法结果。
   所以,使用new没有用到基类方法,而是重新定义了子类方法,只不过方法名称与基类相同。
使用 new 修饰符显式隐藏从基类继承的成员。若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并用 new 修饰符修饰它。

new 与override 区别的更多相关文章

  1. java中的重载(overload)和重写(override)区别

    方法重载(overload): 方法重载就是在一个类中可以创建多个方法,它们具有相同的名字,但是具有不同的参数和不同定义,调用方法时通过传递给他们的不同参数个数和参数列表决定具体使用     哪   ...

  2. C# new和override区别(转)

    override 1. override是派生类用来重写基类中方法的: 2. override不能重写非虚方法和静态方法: 3. override只能重写用virtual.abstract.overr ...

  3. JDK 1.5 1.6 override区别

    今天在更新时发现有个别项目报错,报错信息 到网上搜索了之后,根据网上描述,修改了一批配置都不行: http://bestchenwu.iteye.com/blog/997420(这个里面的方法二,即为 ...

  4. .Net面試題

    初级.NET开发人员 - 任何使用.NET的人都应知道的 1. 描述线程与进程的区别? 进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在.进程可以定义程序的 ...

  5. 有关 PHP 的 10 道问题

    1.简述面向对象的三大特性 答:封装 --  继承  --  多态 封装的目的:为了让类更安全 继承的概念:子类可以继承父类的一切 多态的概念:当父类引用指向子类实例,由于子类里面对父类的方法进行了重 ...

  6. Java高并发系列——检视阅读

    Java高并发系列--检视阅读 参考 java高并发系列 liaoxuefeng Java教程 CompletableFuture AQS原理没讲,需要找资料补充. JUC中常见的集合原来没讲,比如C ...

  7. C# virtual override 和 new 的区别

    一直以来我都对 virtual  override 和 new 之间的区别感到疑惑不解. 特别笔试的时候特别容易考到,真的很容易弄错啊,畜生! 光看理论永远记不住,那不如写几行代码就懂了. 首先看看v ...

  8. C#中override和new修饰符的区别

    (new)“隐藏”,(override)“覆盖”(重写).不过要弄清楚这两个有什么区别确实也很难,因为子类在使用父类方法时根本看不出区别,子类不管父类是new了还是override了,用的都是父类方法 ...

  9. overload和override的区别(转)

    overload和override的区别 override(重写) 1.方法名.参数.返回值相同.2.子类方法不能缩小父类方法的访问权限.3.子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出 ...

随机推荐

  1. Nginx Resource

    Nginx中URL转换成小写首先编译安装nginx_lua_module模块server节: location / { if($uri ~ [A-Z]){ rewrite_by_lua 'return ...

  2. CentOS 6.7编译安装PHP7

    1.首先配置好编译环境 yum update && yum upgrade yum groupinstall "Development Tools" yum ins ...

  3. window和Linux下的软链接

    window下开启软链接命令: mklink /J  "D:\IdeaProjects\bms_work\smartcity_govnet\base_web\target\base_web\ ...

  4. 【转】Angular Input格式化

    今天在Angular中文群有位同学问到:如何实现对input box的格式化.如下的方式对吗? <input type="text" ng-model="demo. ...

  5. 在Abp框架中使用Mysql数据库的方法以及相关问题小记

    最近发现了一款DDD的框架 看起来不错,据说挺流弊的 刚好最近要弄点小东西,拿来试试也不错 苦于穷逼买不起高配服务器,只好装mysql数据库了 下面说下如何在该框架下使用Mysql数据库 打开项目后, ...

  6. [XML] ResourceManager一个操作Resource的帮助类 (转载)

    点击下载 ResourceManager.zip /// <summary> /// 类说明:Assistant /// 编 码 人:苏飞 /// 联系方式:361983679 /// 更 ...

  7. [Mime] MediaTypes--电子邮件类型类 (转载)

    点击下载 MediaTypes.rar 这个类是关于 电子邮件类型类的操作,在发送电子邮件是规定以什么样的格式发送,Xml,HTML,文本等方式1.电子邮件类型帮助类,Xml格式,HTML格式等看下面 ...

  8. Jenkins corbertura问题

    最近在Jenkins上部署项目时遇到无法展示覆盖率测试报告的问题. build success后,出现配置的覆盖率报告存储位置not exists的失败问题,评估是Jenkins每次按照publish ...

  9. linux修改时区,时间格式

    修改为上海的时区: 查看当前时区 date cp -vf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime vim /etc/sysconfig/cl ...

  10. android关于installLocation

    以下内容主要参考自官网的描述. 从Android API-8开始,android允许你将应用程序安装到外部存储空间中去(比方:SD卡),你可以在AndroidManifest.xml中添加androi ...