C中关于重载(overload)介绍(想了解的这儿都有)

C中关于重载(overload)介绍(想了解的这儿都有)重载的含义是什么 重载有哪些 重载方法 重载函数该怎么写 重载的特点是什么 重载的作用是什么 使用重载时应该注意什么

前言:在编程过程中,难免会遇到一种方法或者一种函数可以拥有不同的参数,这就是用到了重载,下面我们一起去探索重载的秘密:

一.重载的含义:

它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,我们可以根据参数类型不同去选择我们所需要的;

二.重载的分类:

1.方法重载:

在同一个类中,方法名称相同,但是参数列表不同(参数个数不同、参数类型不同、不同类型的排列顺序不同),称之为方法的重载,方法的重载不包含继承关系,重载不用考虑方法的返回值类型,重载类型顺序必须不同;
例如:

 class First { 
    public void Study() { 
    Console.WriteLine("我是没有参数的overload"); } public void Study(string name) { 
    Console.WriteLine("我是带有一个参数的overload {0}", name); } public void Study(string name, int age) { 
    Console.WriteLine("我是带有两个参数的overload {0} 我创建了{1}个参数", name, age); } public void Study(string name, int age, string sex) { 
    Console.WriteLine("我是带有三个参数的overload {0} 我创建了{1}个参数 我想去 {2}", name, age, sex); } } 

在这里插入图片描述
看看运行结果:
在这里插入图片描述

2.函数重载:

指一个类中构造函数也可以重载,只要符合重载的规则即可,重载函数常用来实现功能类似而所处理的数据类型不同的问题。不能只有函数返回值类型不同;
两个重载函数必须在下列一个或两个方面有所区别:
1、函数的参数个数不同。
2、函数的参数类型不同或者参数类型顺序不同,



举例:

 public First() { 
    Console.WriteLine("我是第一个重载函数"); } public First(int a) { 
    Console.WriteLine("我是第{0}个重载函数",a); } public First(string a) { 
    Console.WriteLine(a); } static void Main(string[] args) { 
    First first = new First(); First ff=new First(2); First dd = new First("我是第三个重载函数"); Console.ReadLine(); } 

3.运算符重载:

重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表,由于涉及到新的关键字,本重载将会在下文详细解释,敬请期待!!!

三.重载的特点:

  1. 名称相同,参数列表不同;
 public void Study() { 
    Console.WriteLine("我是没有参数的overload"); } public void Study(string name) { 
    Console.WriteLine("我是带有一个参数的overload {0}", name); } public void Study(string name, int age) { 
    Console.WriteLine("我是带有两个参数的overload {0} 我创建了{1}个参数", name, age); } public void Study(string name, int age, string sex) { 
    Console.WriteLine("我是带有三个参数的overload {0} 我创建了{1}个参数 我想去 {2}", name, age, sex); } 
  1. 参数个数不同,参数类型不同;
 public void Study(string name, int age) { 
    Console.WriteLine("我是带有两个参数的overload {0} 我创建了{1}个参数", name, age); } public void Study(string name, int age, string sex) { 
    Console.WriteLine("我是带有三个参数的overload {0} 我创建了{1}个参数 我想去 {2}", name, age, sex); } 
  1. 若参数的个数相同,那么参数类型的顺序必须不一样;
public void Study(string name,int age) { 
    Console.WriteLine("我是带有一个参数的overload {0}", name); } public void Study(string me, int e) { 
    Console.WriteLine("我是带有两个参数的overload {0} 我创建了{1}个参数", me, e); } 

四.重载的作用:

  1. 重载的好处就是,不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。
  2. 重载的最直接作用是方便我们可以根据不同的参数个数,顺序,类型,自动匹配方法,减少写过个函数名或方法名的重复步骤。

五.重载的注意事项:

  1. 在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));
  2. 不能通过访问权限、返回类型进行重新加载;
  3. 方法的数目不会对重新加载造成影响;
  4. 对于继承来说,如果某一方法在父类中是访问权限是private,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。

以上就是本次的主要内容了,若有不足还请指正…????????

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231237.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月20日 上午10:01
下一篇 2026年1月20日 上午10:22


相关推荐

  • 【存储测试】vdbench存储性能测试工具

    【存储测试】vdbench存储性能测试工具 vdbench是一个I/O工作负载生成器,通常用于验证数据完整性和度量直接附加(或网络连接)存储性能。它可以运行在windows、linux环境,可用于测试文件系统或块设备基准性能。

    2025年7月17日
    2
  • OpenClaw爆火:跨境电商的AI新风口,机遇与隐忧并存

    OpenClaw爆火:跨境电商的AI新风口,机遇与隐忧并存

    2026年3月12日
    2
  • Jenkins安装教程

    Jenkins安装教程Jenkins 安装 1 安装 JDKJenkins 需要依赖 JDK 所以先安装 JDK1 8yuminstallj 1 8 0 openjdk y 安装目录为 usr lib jvm2 获取 jenkins 安装包下载页面 https jenkins io zh download 清华镜像 https mirrors tuna tsinghua edu cn jenkins redhat 安装文件 jenkins 2 190 3 1 1 noarch rpm3

    2026年3月18日
    2
  • 什么是SOA架构?

    什么是SOA架构?一.SOA的概念1.1.SOA(Service-OrientedArchitecture)面向服务的架构:Gartnet把它定义为一种软件的设计方法 百度百科把它定义为一个组件模型 W3C把它定义为一种应用程序架构(https://www.w3school.com.cn/w3c/w3c_china.asp) 专家Davis说它是一种设计思想 总之,SOA不是具体的技术实现SOA的实现SOA实现层面包含两个最重要的概念:面向服务的通信(SOCService-Oriented…

    2022年6月16日
    35
  • 数据库mysql等相关问题整理总结

    记录和总结Mysql相关的一些知识!Mysql索引Mysql索引整理总结 【四星】❤❤❤❤ 点评:熟悉和了解Mysql 的索引和索引的创建以及索引在实际使用中注意的点! Mysql更新死锁问题MySQL更新死锁问题 【五星】❤❤❤❤❤ 不恰当的update语句使用主键和索引导致mysql死锁 【五星】❤❤❤❤❤ 点…

    2022年2月27日
    192
  • k8s pod 状态 Evicted[通俗易懂]

    k8s pod 状态 Evicted[通俗易懂]删除Evicted状态的pod[root@hadoop03kubernetes]#kubectlgetpods|grepEvicted|awk'{print$1}’|xargskubectldeletepodpod”glusterfs-2p28b”deleted[root@hadoop03kubernetes]#kubectldescribepodglusterfs-cpft7Name:glusterfs-cpft7N.

    2022年5月13日
    87

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号