Java重载和重写的区别「建议收藏」

Java重载和重写的区别「建议收藏」1、方法的重载的概念在同一个类中,允许存在一个以上的同名方法,只要同名的参数个数或者参数类型不同即可。总结:”两同一不同”:同一个类、相同方法名参数列表不同:参数个数不同,参数类型不同2、例构成重载的举例:不能构成重载的举例:3、如何判断是否构成方法的重载?严格按照定义判断:两同一不同跟方法的权限修饰符、返回值类型、形参变量名、方法体都没关系!4、如何确定类中某一个方法的调用:方法名——>参数列表子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作重写以后,当创建子类对象以后,通过

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

方法的重载

1、方法的重载的概念

在同一个类中,允许存在一个以上的同名方法,只要同名的参数个数或者参数类型不同即可。

总结:”两同一不同“:同一个类、相同方法名

参数列表不同:参数个数不同,参数类型不同

2、例

构成重载的举例:

 //一
 //Arrays类中重载的sort() / binarySearch(); PrintStream中的println
 //二
 //如下的4个方法构成了重载
     public void getSum(int i,int j){
         System.out.println(i + j);
     }
 ​
     public void getSum(double d1,double d2){
 ​
     }
 ​
     public void getSum(String s,int i){
 ​
     }
 ​
     public void getSum(int i,String s){
 ​
     }

不能构成重载的举例:

 //    public int getSum(int i,int j){
 //        return 0;
 //    }
 //
 //    public void getSum(int m,int n){
 //
 //    }
 //
 //    private void getSum(int i,int j){
 //
 //    }

3、如何判断是否构成方法的重载?

严格按照定义判断:两同一不同

跟方法的权限修饰符、返回值类型、形参变量名、方法体都没关系!

4、如何确定类中某一个方法的调用:

方法名 ——> 参数列表

方法的重写

1、什么是方法的重写(override 或 overwrite)?

子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作

2、应用:

重写以后,当创建子类对象以后,通过 子类对象调用子父类的同名同参数的方法时,实际执行的是子类重写父类的方法

3、举例:

 class Circle{
     public double findArea(){}//求面积
 }
 class Cylinder extends Circle{
     public double findArea(){}//求面积
 }
 //***********************
 class Account{
     public boolean withdraw(double amt){}
 }
 class ChexkAccount extends Account{
     public boolean withdraw(double amt){}
 }

4、重写的规则

方法的声明 : 权限修饰符 返回值类型 方法名(形参列表) throws 异常的类型{

//方法体

}

约定俗称 : 子类中的叫重写的方法,父类中的叫被重写的方法

  1. 子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同

  2. 子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符

    • 特殊情况 :子类不能重写父类中声明为 private 权限的方法

  3. 返回值类型:

    • 父类被重写的方法的返回值类型是 void ,则子类重写的方法的返回值类型只能是 void

    • 父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类或A类的子类

    • 父类被重写的方法的返回值类型是基本数据类型(比如:double),则子类重写的方法的返回值类型必须是相同的基本数据类型(必须也是 double)

  4. 子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型(具体放到异常处理时候讲)

子类和父类中的同名同参数的方法要么都声明为非 static 的(考虑重写,要么都声明为 static 的(不是重写))。

要求:

  1. 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表

  2. 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型

  3. 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限

    • 子类不能重写父类中声明为 private 权限的方法

  4. 子类方法抛出的异常不能大于父类被重写方法的异常

注意:

子类与父类中同名同参数的方法必须同时声明为非 static 的(即为重写),或者同时声明为 static 的(不是重写)。因为 static 方法是属于类的,子类无法覆盖父类的方法。

所以说方法的重载与重写的区别?

没有关系,只是名字带重

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

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

(0)
上一篇 2025年10月14日 下午8:22
下一篇 2025年10月14日 下午9:01


相关推荐

  • Redis入门_redis菜鸟教程

    Redis入门_redis菜鸟教程Redis文章目录Redis一、Redis概述二、Redis应用场景三、Redis的下载和安装四、Redis服务的启动五、Redis命令行工具六、Redis基础知识七、Redis数据类型1.key(键)2.String(字符串)3.List(列表)4.Set(集合)5.Zset(有序集合)6.Hash(哈希)八、实践案例九、Redis常用查询指令十、Jedis的使用十一、Redis可视化工具十二、持久化概念十三、RDB十四、AOF十五、AOF重写十六、RDB与AOF的选择一、Re

    2025年11月20日
    4
  • Video Converter_硬中华的编码怎样看

    Video Converter_硬中华的编码怎样看AppleDeveloperVideoToolBox官方文档在iOS4.0苹果开始支持硬编解码,不过硬编解码在当时还属于私有API,不提供给开发者使用。在2014年的WWDC大会上,也就是iOS8.0之后,苹果才放开了硬编解码的API。VideoToolbox.framework是一套纯C语言的API,其中包含了很多C语言函数,同时VideoToolbox.framework是基于CoreFoundation库函数,基于C语言VideoToolbox实际上属于低级框架,它是可以直接访问硬件编码

    2022年10月20日
    3
  • C++解析XML文件[通俗易懂]

    C++解析XML文件[通俗易懂]C++解析XML文件TinyXML安装下载解析XML文件最近在使用C++处理GF-3和RADARSAT-2雷达影像,需要通过解析XML文件获取影像时间,我选用了TinyXML库来解析。参考了网上的一些教程,这个文档个人觉得是解释的很清晰的。(https://www.cnblogs.com/hgwang/p/5833638.html),第一次使用记录一下学习过程,供以后参考。TinyXML安装下…

    2022年7月14日
    19
  • 使用阿里云Ubuntu搭建代理服务器

    使用阿里云Ubuntu搭建代理服务器因为调试原因需要更改 TensorFlow 版本 但是学校网络的原因 使用 pipinstallte 1 8 nbsp 下载 TensorFlow1 8 一直不成功 突然想到有一台阿里云服务器 便想着试试搭建一个 IP 代理服务器试试 找了一些资料 最终决定使用 TinyProxy TinyProxy 安装非常简单 输入 sudoapt getupdateapt getinstall

    2026年3月18日
    3
  • python lmdb_python compile函数

    python lmdb_python compile函数使用Python合并lmdb文件

    2026年4月18日
    4
  • 我们为什么要用Redis

    我们为什么要用Redis最近阅读了 Redis 开发与运维 非常不错 这里对书中的知识整理一下 方便自己回顾 Redis 的整个体系 来对相关知识点查漏补缺 按照五点把书中的内容进行一下整理 1 为什么要选择 Redis 介绍 Redis 的使用场景与使用 Redis 的原因 2 Redis 常用命令总结 包括时间复杂度总结与具体数据类型在 Redis 内部使用的数据结构 3 Redis 的高级功能 包括持久化 复制 哨兵 集群介绍

    2026年3月26日
    2

发表回复

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

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