以拖拉机论重载

来源:互联网 发布:编程语言设计Pdf 编辑:程序博客网 时间:2024/04/20 10:15

一、拖拉机理念:

   方法重载是指在同一个类中方法同名,参数不同,调用时根据实参的形式,选择与他匹配的方法执行操作的一种技术。今天我将以拖拉机和我家的关系向大家介绍我对重载的理解。

   过年了,妈咪给了我压岁钱,不多不少,正好500块钱的一半,我琢磨着这钱不能瞎花,得为家里干点事吧,于是,我买了一辆拖拉机。(在“家方法”中添加了一种“拖拉机载物方法”)

   第一次,我的拖拉机是空哒;

   第二次,我用拖拉机向家里运的是玉米;

   那么问题来了,第二次用拖拉机装载的是玉米,难道我的拖拉机以后只能装载玉米了吗?当然不是,要真是那样,以后如果我家不种玉米了,拖拉机不就相当于白买

了吗!可是如果我用这个拖拉机装沙子,沙子就漏掉了啊,怎么办?

   这时候重载出现了,将“拖拉机载物方法”重载,把里面的装备改了,将我的拖拉机改成既能装玉米,又能装沙子,平时还可以什么都不装的在家里待着的拖拉机。看看我的代码:

class Home    {        private string goods = "";      //类型一,专门适用于货物类        public Home(string goods)        {            this.goods = goods;        }        private int num ;              //类型二,专门适用于数字        public Home(int num)        {            this.num = num;        }        public Home()  //重载           //类型三,专门适用于空载        {            this.goods  = "空哒";        }        public string Zhuangzai()        {            return "我的车里是" + goods;        }    }
实践一下:

 Home home1 = new Home();            Home home2 = new Home("玉米");            Home home3 = new Home("123");                        Console.WriteLine("第一次:"+home1.Zhuangzai ()+"\n第二次:"+home2.Zhuangzai ()+"\n第三次:"+home3.Zhuangzai ());            Console.Read();

看看效果~快到我的拖拉机里来:

          

      感觉还不错,该装的都装进来了。

二、方法重载的要求:

1、在同一个类中;
2、两个方法方法名相同;
3、参数类型或个数必须有所不同;
这里所说的参数不同是指以下几种情况:
①  参数的类型不同
②  参数的个数不同
③  参数的个数相同时他们的先后顺序不同
注意:系统会认为是同一个方法的两种情况,这样的两个方法不可以在同一个类里,否则系统会报错。
⑴返回类型不同,方法名和参数个数、顺序、类型都相同的两个方法
⑵返回类型相同,方法名和参数的个数、顺序、类型都相同的两个方法,但是参数的名字不同
例如:

   ① protected  void A()

     { 

       Console.WriteLine("aaaaaaaaaaaa"); 

     }

    ②  protected void A(string s, int a)

     { //正确的方法重载

          Console.WriteLine("ccccccccccc");

     }

    ③  protected void A(string a, int s)

      {

          Console.WriteLine("ccccccccccc");
      }

④  protected void A(int a,string s)

     {

          Console.WriteLine("bbbbbbbbbb");
     }
①  与②是方法重载
②  与③和④比较一下:②与③是同一个方法,因为他们只是参数的名字不同,②与④是正确的方法重载,因为他们参数的顺序不同

三、适用范围:普通方法和构造方法都可以

0 0