以拖拉机论重载

简介: 以拖拉机论重载

一、拖拉机理念:


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

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

    }

①  与②是方法重载

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


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





























相关文章
|
运维 监控 JavaScript
SaaS模式Java全套云HIS源码包含EMR、LIS
满足基层医院各类业务需求的云HIS系统。它能帮助基层医院完成日常各类业务,提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站等一系列常规功能,实现多层机构之间的融合管理。
284 0
|
存储 资源调度 分布式计算
LC3|视角 开源大数据生态下的高性能分布式文件系统
## 背景介绍 盘古是阿里云自主研发的高可靠、高可用、高性能分布式文件系统,距今已经有将近10年的历史。盘古1.0作为阿里云的统一存储核心,稳定高效的支撑着阿里云ECS、NAS、OSS、OTS、ODPS、ADS等多条业务线的迅猛发展。但最近几年,基于如下两方面的原因,盘古还是重新设计实现了第二代存储引擎盘古2.0,其不只为阿里云,也为集团、蚂蚁金服的多种业务提供了更佳优异的存储服务 #
3219 0
|
Java
Error:java: 无效的目标发行版: 11解决方案
Error:java: 无效的目标发行版: 11解决方案
541 0
|
存储 Python
Python中list, tuple, dict,set的区别和使用场景
Python中list, tuple, dict,set的区别和使用场景
916 2
|
12月前
|
算法 5G 定位技术
室内导航怎么实现?解决方案与案例分享
本文探讨了室内导航的实现原理、关键技术、用户体验优化及未来发展趋势。通过Wi-Fi定位、蓝牙Beacon、UWB和视觉SLAM等多种技术,结合高精度地图绘制和路径规划算法,实现室内AR导航及定位导航。文章还介绍了性化服务和成功案例,展望了5G、物联网和AI等技术在室内导航中的应用前景。
1196 0
|
存储 缓存 NoSQL
了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质
了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质
|
Java Spring
【已解决】Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception .lang.NullPointerEx
【已解决】Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception .lang.NullPointerEx
331 0
|
小程序 JavaScript Java
基于微信小程序的护工服务预约管理系统设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的护工服务预约管理系统设计与实现(源码+lw+部署文档+讲解等)
220 0
基于微信小程序的护工服务预约管理系统设计与实现(源码+lw+部署文档+讲解等)
|
消息中间件 存储 编解码
Kratos微服务框架下的消息队列应用
Kratos微服务框架下的消息队列应用,包括了:Kafka、Rabbitmq、mqtt、redis,nats,websocket等。
2823 1
|
SQL Java 数据库连接
MyBatis动态设置表名 获取添加功能自增的主键 自定义映射
MyBatis动态设置表名 获取添加功能自增的主键 自定义映射
431 0
下一篇
开通oss服务