博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
隐藏父类方法的new和重写父类虚方法virtual的区别
阅读量:4960 次
发布时间:2019-06-12

本文共 1201 字,大约阅读时间需要 4 分钟。

一、代码

  

1     public class Parent 2     { 3         public void Method_A() 4         { 5             Console.WriteLine("Parent Method_A"); 6         } 7         public virtual void Method_B() 8         { 9             Console.WriteLine("Parent Method_B");10         }11     }12     public class Child : Parent13     {14         public new void Method_A()15         {16             Console.WriteLine("Child Method_A");17         }18         public override void Method_B()19         {20             Console.WriteLine("Child Method_B");21         }22     }23     class Program24     {25         static void Main(string[] args)26         {27             Child child = new Child();28             child.Method_A();29             child.Method_B();30 31             Parent p = child as Parent;32             p.Method_A();33             p.Method_B();34 35             Console.Read();36         }37     }

   显示结果:

  

二、总结 

  1、子类使用new隐藏父类方法后,是独立于父类的方法。

  2、子类使用override重写父类的方法后,只是在调用时不再调用父类方法而调用子类方法。

  3、子类也可以使用new隐藏父类的虚方法

  3、创建的Child实例,在执行Method_AMethod_B方法时,都执行的是Child中的方法。

       但是将该实例转换成父类时,Method_A执行的是ParentMethod_A方法,而Method_B执行的依旧是Child中的Method_B方法。

 

转载于:https://www.cnblogs.com/hyunbar/p/10062693.html

你可能感兴趣的文章
线性表
查看>>
【转】解决eclipse新导入工程无法run as server
查看>>
【转】struts1.2的action参数配置
查看>>
快速幂&快速乘
查看>>
WebLogic 12c 多节点Cluster静默安装
查看>>
win8中如何禁用屏幕旋转的快捷键
查看>>
Solution 23: 判断矩形和圆是否相交
查看>>
Qt And MFC Mouse Over Tips
查看>>
JSP/Servlet 中的汉字编码问题
查看>>
《构建之法》(十)
查看>>
django之信号
查看>>
[noip2013]货车运输(kruskal + 树上倍增)
查看>>
简单工厂模式
查看>>
#hashMap冲突原理#详细
查看>>
基于单片机定时器---年月日时分秒的算法
查看>>
linux中IDE和SATA硬盘的区别
查看>>
关于清理缓存的解决方案
查看>>
编译时获得系统的日期和时间
查看>>
Unity3D写雷电游戏(一)
查看>>
Mybatis之使用注解开发CRUD
查看>>