以拖拉机论重载

简介: 以拖拉机论重载

一、拖拉机理念:


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

  过年了,妈咪给了我压岁钱,不多不少,正好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();


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

         


20160215151544753.jpg

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

二、方法重载的要求:


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");

    }

①  与②是方法重载

②  与③和④比较一下:②与③是同一个方法,因为他们只是参数的名字不同,②与④是正确的方法重载,因为他们参数的顺序不同


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





























相关文章
|
6月前
|
Java
方法的重载
方法的重载
52 1
|
26天前
重载双目运算符
重载双目运算符
10 0
|
6月前
|
编译器 C#
C#重载详解
C#重载详解
52 0
|
6月前
|
C++
44重载双目运算符
44重载双目运算符
42 0
C++重载、重写、重定义
C++重载、重写、重定义
90 0
|
12月前
|
C++
39 C++ - 为什么不能重载&&、||
39 C++ - 为什么不能重载&&、||
36 0
|
12月前
|
C++
54 C++ - 重写 重载 重定义
54 C++ - 重写 重载 重定义
31 0
4.【拷贝构造函数与重载】
4.【拷贝构造函数与重载】
36 1
函数的重载
函数的重载
28 0