• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

关于在C#中对类中的隐藏基类方法和重写方法的理解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  最近在学习C#,在C#中的类看到重写和隐藏基类的方法这些概念。才开始感觉自己不是很理解这些概念。也区分不开这些概念。通过自己的查找资料和练习后。慢慢的理解了类中的隐藏和重写这个概念。在C#中只有在基类定义了一些虚方法才能在派生类中重写基类中的虚方法。但是如果在派生类中使用隐藏方法,就不用在基类中定义虚方法。虚方法和重写实现的功能感觉是差不多的。都是在派生类中改变了基类中的方法,但是两者还是有质的区别,概念的性质也是不一样的。
   重写是指:将基类中的方法替换掉,也就是抹掉基类中的原有方法,在派生类中重新写一种方法。当然重写的这个新方法也会作用到基类中。听着很抽象,但是看看代码就知道了。

代码如下:

 1 using System;
 2 namespace LHT
 3 {
 4     class a
 5     {
 6         public virtual void print()//虚方法,关键字为virtual
 7         {
 8             Console.WriteLine("这个是基类中的虚方法");
 9         }
10     }
11 
12     class b : a
13     {
14         public override void print()//重写基类中的方法,关键字为override
15         {
16             Console.WriteLine("这个是派生类中的重写方法");
17         }
18     }
19 
20     class c
21     {
22         static void Main()
23         {
24             a temp1 = new a();
25             b temp = new b();
26             temp.print();
27             temp.print();
28             Console.ReadKey();
29         }
30     }
31 }
View Code

结果如下:

这个是派生类中的重写方法
这个是派生类中的重写方法

隐藏是指将基类中的方法忽略掉,再在派生类中写一个方法,这个方法只是在派生类中有效,并不会影响到基类(当然基类中的方法可以是普通的方法,也可以是虚拟的方法)。

代码如下:

 1 using System;
 2 namespace lht
 3 {
 4     class a
 5     {
 6         public void print()//普通的方法
 7         {
 8             Console.WriteLine("这个是基类中方法");
 9         }
10     }
11     class b : a
12     {
13         new public void print()//隐藏基类的方法,在派生类中定义新的方法(关键字new)
14         {
15             Console.WriteLine("这个是派生类中的方法");
16         }
17     }
18     class c
19     {
20         static void Main()
21         {
22             b temp = new b();
23             a temp1 = new a();
24             temp.print();
25             temp1.print();
26             Console.ReadKey();
27         }
28     }
29 }
View Code

结果如下:

这个是派生类中的方法
这个是基类中方法


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#图片处理基本应用(裁剪,缩放,清晰度,水印)(转)发布时间:2022-07-14
下一篇:
11在C#中写文件发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap