zoukankan      html  css  js  c++  java
  • C#重载和重写

    Overload:重载就是在同一个类中,方法名相同,参数列表不同.参数列表不同包括:参数的个数不同,参数类型不同.

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Text;
     4 
     5 namespace OverLoading
     6 {
     7     class Program
     8     {
     9         public static int max(int i, int j)                    //静态方法
    10         {
    11             if (i > j)
    12                 return i;
    13             else
    14                 return j;
    15         }
    16         public static double max(double i, double j)        //重载静态方法
    17         {
    18             if (i > j)
    19                 return i;
    20             else
    21                 return j;
    22         }
    23         static void Main()
    24         {
    25             Console.WriteLine(max(1, 2));
    26             Console.WriteLine(max(1.1, 120.02));
    27             Console.ReadLine();
    28         }
    29     }
    30 }

    代码分析:
    在上述示例中,虽然有多个max方法,但由于方法中参数类型不相同,当在程序中调用max方法时,就会自动去寻找能匹配相应参数的方法。
    运行上述代码,其输出结果如图4.3所示。
    同名的重载方法之间是通过其参数的数量、类型和顺序来区分的,只要这3种属性的任意一种不同,就可以定义不同的方法。例如:
    int methodName(int i, double j)
    int methodName(int i, double j, int k)
    int methodName(int i, int j)
    int methodName(double i, int j)

    OverRide:说的是两个类继承,子类重写父类的方法,在调用的时候,子类的方法会覆盖父类的方法,也就是会调用子类的方法.在父类中的方法必须有修饰符Virtual,而在子类的方法中必须知名OverRide.(方法名称必须相同,参数也要相同)重写格式:

     1 //父类中
     2 public virtual void Method()
     3 {
     4 
     5 }
     6 //子类中:
     7 public override void Method()
     8 {
     9 
    10 }

    重写以后,用父类对象和子类对象访问Method()方法,结果都是访问在子类中重新定义的方法,父类中的方法相当于备覆盖掉了.子类中为满足自己的需要来重复定义某个方法的不同实现.

  • 相关阅读:
    面向对象程序设计2020第二次作业
    工作日志。SQL篇
    正则表达式 转
    jquery ajax初级
    Javascript 面向对象编程
    C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE、ACCESS,附源码下载地址)
    asp.net后台操作javascript:confirm返回值(转)
    SQL学习之索引(转)
    linq学习(一)
    SQL基础数据库执行及优化2012.06.02听课记录+资料收集
  • 原文地址:https://www.cnblogs.com/liubeimeng/p/3822245.html
Copyright © 2011-2022 走看看