c#函数重载

【重载】

       提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。

       特点:方法名必须相同,但参数类型或个数必须不同

       优点:在不改变原来方法的基础上,新增功能

       代码:

[csharp]  view plain  copy
  1. <span style="font-size:14px;"class Cat  
  2.  {  
  3.      private string name = "";  
  4.      public Cat(string name)  
  5.      {  
  6.          this.name = name;  
  7.      }  
  8.      public Cat()  
  9.      {  
  10.          this.name = "无名";  
  11.      }  
  12.  }</span>  

以上简短几行代码就实现了方法的重载

【重构】

       调整程序代码,使其更符合面向对象规则,提高软件的扩展性和维护性。前提是不改变程序原有的功能

       特点:对代码的优化

       代码:比如现在我有两个类,一个是Cat,另一个是Dog,他们都有叫方法,如果我每个类都去写实现叫方法,就造成了代码的重复,怎么办那,可以把叫方法抽象出来,放到一个父类Animal中,让子类Cat、Dog去继承

[csharp]  view plain  copy
  1. <span style="font-size:14px;">class Animal  
  2.     {  
  3.         public virtual void GetShoutSound()  
  4.         { }  
  5.     }  
  6.     class Cat:Animal  
  7.     {  
  8.         public override void  GetShoutSound()  
  9.         {  
  10.             Console.WriteLine("猫的叫声为:喵");  
  11.         }  
  12.     }  
  13.     class Dog : Animal  
  14.     {  
  15.         public override void GetShoutSound()  
  16.         {  
  17.             Console.WriteLine("狗的叫声为:");  
  18.         }  
  19.     }</span>  

【重写】

       多出现在多态里,父类里写一个virtual方法或abstract方法,子类通过override重写去实现父类的方法

       上面重构就体现了重写

【总结】

       在验收时师父问重载、重构、重写的区别,当时就蒙了,但下来一查,原来这就是重载,重构,重写呀,由此总结,对比学习真的很重要,还有一点更为重要,我们在学一知识点后,要能自己口述出来,能讲给别人听,能讲出来,起码概念就得明确,即中心明确,别学完之后不知道自己学的是什么,讲出来才是自己真正吸收的,在以后的学习中要加强这方面的锻炼。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值