zoukankan      html  css  js  c++  java
  • C#温故而知新学习系列之面向对象编程—方法的重载(八)

      前言探讨

      我们说过构造函数是对类进行初始化的,我们希望刚出生的小猫有个姓名叫“咪咪”,当它叫的时候,能说“我的名字叫咪咪”,此时就要用到构造函数了,如下代码没有加绿色代码的部分,但是问题来了?如果我们事先没有给小猫起好名字,那么就创建不了实例了,这种现象很正常,有些父母刚生下孩子的时候,姓名没有起好是很正常的事情,就以下的代码没有加绿色代码的部分,你如果写Cat cat = new Cat();是会报“Cat方法没有采用0个参数的重载”的错误,原因就是必须要给小猫起名字,如果不需要起名字也要生下小猫,可以用方法重载实现

      方法的重载

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

      方法重载时,两个方法名必须要相同,但是参数类型或个数必须有所不同

      方法重载的好处是什么?

      方法重载的好处是在不改变原方法的基础上,新增功能

      实例

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;

      namespace _7_ConstructedFunction
      {
          class Program
          {
              static void Main(string[] args)
              {
                  Cat cat = new Cat("咪咪");
                  Console.WriteLine(cat.Shout());

           //不起名字也能生下小猫

           Cat cat2 = new Cat();

           Console.WriteLine(cat2.Shout());
                  Console.ReadKey();
              }
          }

          class Cat
          {
              private string _name = "";

          //通过加这段绿色代码,把构造方法重载

         public Cat()
          {

            this._name = "无名";
         }
              public Cat(string name)
              {
                  this._name = name;
              }

              public string Shout()
              {
                  return "我的名字叫" + _name;
              }
          }
      }

      运行效果

      

      思考

      上面的例子,有的小猫起好了名字,就用带string参数的构造函数,有的小猫没有起名字,就用不带参数的构造函数,这样就达到了扩展的目的

      如果我们需要分清楚猫的姓和名,可以再重载一个构造方法public Cat(string strFirstName,string strLastName)

    记录,成为更好的自己
  • 相关阅读:
    对象数组、集合、链表(java基础知识十五)
    正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)
    stringBuffer、StringBuilder、排序、Arrays、Jdk1.5新特性(java基础知识十三)
    Scanner、String(java基础知识十二)
    开发工具、Object类(java基础知识十一)
    包、修饰符、内部类、匿名内部类(java基础知识十)
    获取cookies的简单代码(总结待续)
    多态、抽象类、接口、区别(java基础知识九)
    代码块、继承、this、super、final(java基础知识八)
    构造方法,重载,static,math类(java基础知识七)
  • 原文地址:https://www.cnblogs.com/menglin2010/p/2321399.html
Copyright © 2011-2022 走看看