首页 > 其他分享 >函数重写和函数重载的区别是什么?

函数重写和函数重载的区别是什么?

时间:2024-07-26 20:52:41浏览次数:6  
标签:函数 示例 System 重载 重写 display

函数重写(Override)和函数重载(Overload)有以下重要区别:

1. 定义位置不同
- 函数重写发生在具有继承关系的子类和父类之间。
- 函数重载可以发生在同一个类中。

2. 方法签名要求不同
- 重写要求方法名、参数列表和返回类型都必须与父类中被重写的方法完全相同(返回类型可以是协变类型)。
- 重载要求方法名相同,但参数列表(参数的类型、个数、顺序)不同。

3. 访问权限限制不同
- 重写的方法不能比父类中被重写的方法有更严格的访问权限。
- 重载对方法的访问权限没有特殊要求。

4. 异常处理不同
- 重写的方法不能抛出比父类中被重写方法更多的异常。
- 重载对异常没有限制。

下面是一些示例来说明:

函数重载示例

class OverloadingExample {
    void print(int num) {
        System.out.println("Integer: " + num);
    }

    void print(String str) {
        System.out.println("String: " + str);
    }

    void print(double num) {
        System.out.println("Double: " + num);
    }
}

在这个示例中,print 方法被重载了三次,根据传入参数的类型不同执行不同的操作。

函数重写示例

class Parent {
    void display() {
        System.out.println("Parent's display");
    }
}

class Child extends Parent {
    @Override
    void display() {
        System.out.println("Child's display");
    }
}

在这个示例中,子类 Child 中的 display 方法重写了父类 Parent 中的 display 方法。

标签:函数,示例,System,重载,重写,display
From: https://www.cnblogs.com/itcq1024/p/18326218

相关文章

  • 基础数论 整除分块与欧拉函数
    整除分块:例题:已知\(f(n)=\sum\limits_{i=1}^{n}\left\lfloor\frac{n}{i}\right\rfloor\),给定\(n\),求\(f(n)\)的值。固然可以\(O(n)\)暴力,但显然会\(TLE\)。计算一下前几项的值之后可以发现\(\left\lfloor\frac{n}{i}\right\rfloor\)的取值在连续的一段区间内是......
  • Listen(sockfd,backlog)监听函数的第二个参数到底是什么?深度解释
    listen队列剖析intlisten(intsockfd,intbacklog)   backlog: 监听套接字队列对于一个调用监听的套接字,系统会维护给这个套接字两个队列1.未完成连接队列 //当客户端发生三次握手的第一次syn包给服务器的时候,服务器就会再未完成队列中创建一个跟这个syn包对......
  • Windows窗口函数常规
    1、wWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPWSTRlpCmdLine,intnCmdShow)宽字符版本主函数hInstance(HINSTANCE):这是一个句柄,指向当前应用程序的实例。当程序启动时,系统会为该应用程序创建一个实例,并且这个句柄会被用来标识它。此句柄可以......
  • 超火爆AI工具——Vozo:一键重写视频脚本、重新配音!
    最近有一款短视频工具——VozoAI非常火热,上线即登ProductHunt榜首,且已蝉联3天。它的全名是VozoRewrite&Redub,Rewrite意味着重新编写,Redub代表重新配音,它能够根据提示词,重新生成视频脚本并能够通过克隆原说话人声音,为视频生成新的配音,外加同步口型!今天就带大家一起来了解......
  • fastadmin 共用函数
    //XML转数组if(!function_exists('xmlToArray')){/***XML转数组*@paramxmlXML数组*@returnstring返回图片地址*/functionxmlToArray(string$xml,$oldStr=[],$newStr=[]){//过滤特殊xml格式if......
  • 判断类中是否有虚函数
    #include<iostream>#include<string>#include<stack>usingnamespacestd;#include<iostream>#include<type_traits>template<typenameT>structHasVirtual:publicT{boolhasVirtualFlag;booloperator()()......
  • js 方法重载实现
    functioncreateFunOverLoad(){constfunMap=newMap()console.log(funMap)constfunOverLoad=function(...args){constkey=args.map(param=>typeofparam).join('-')console.log(key)constfn=funMap.get(key)if(f......
  • 使用 useRequestURL 组合函数访问请求URL
    title:使用useRequestURL组合函数访问请求URLdate:2024/7/26updated:2024/7/26author:cmdragonexcerpt:摘要:本文介绍了Nuxt3中的useRequestURL组合函数,用于在服务器端和客户端环境中获取当前页面的URL信息。通过示例展示了如何在页面中使用此函数获取并显示URL及其......
  • python基础函数
    1.为什么使用函数使用函数的目的是去减少代码的冗余性,简化代码的复杂度2.如何去定义一个函数以def开头去进行相关的定义在def的后面我们就去以见明知意的方式去定义一个函数的名称在函数名称后面的括号中去添加参数值,可以是多个参数,也可以是无餐的3.函数的调用无参多......
  • 函数模板重载和实例化例题
    //CPPTest.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include<fstream>#include<iostream>#include<string>#include<cstring>#include<cmath>usingnamespacestd;template<classT>Tmaxn(T*arr,intn){ Tmax......