首页 > Windows开发 > 详细

关于C#重写,隐藏的一些事

时间:2016-03-09 22:22:35      阅读:335      评论:0      收藏:0      [点我收藏+]

第一次开始写技术博客,不知该从何处下手,本人算是菜鸟一枚,每每看到博客园里面的大牛们分享的技术文章,只能望其项背,高不可攀。但细细想来,若不尝试着从小处从低处慢慢去积累分享,想要成为技术大牛也只能沦为泡影。所以,just do it。

 

c#面试过程中重写(override),隐藏(new)之间的区别算是经常被问到,下面将举个栗子来演示一下。

 

 1、新建一个Person类,里面有个Say()方法,用virtual修饰可被子类重写或隐藏。

技术分享

2、再建一个Teacher类继承于Person类,重写(override)Say()方法。

技术分享

3、再建一个Student类继承于Person类,隐藏(new)Say()方法。

     技术分享

4、我们在Main方法中进行调用

技术分享

执行结果如下:

           技术分享

 

分析:

      1、实例化一个Person对象person,第一次调用Say()时,调用的是自身的say(),输出: I am a Person;

      2、实例化一个Teacher对象teacher,由于Teacher类重写(override)父类Person中的Say()方法,执行的是重写之后的Say(),所以输出:I am a teacher;

      3、实例化一个Student对象student,执行的后输出:I am a student;

      4、当person指向一个Teacher实例时,编译时person调用Say()实则运行时调用的是重写之后的Say();

           而当person指向一个Student实例时,编译时person调用Say(),运行时调用的是自身的Say();说明Student中的Say()是一个全新的方法,对Person对象隐藏,Person对象只能访问自己的Say()。

 

关于C#重写,隐藏的一些事

原文:http://www.cnblogs.com/ccnu0641/p/5259695.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!