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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL like子查询

    SQL like子查询like子查询字符匹配:%(百分号)任意字长度(可以为0)的字符_(下横线)代表任意单个字符eg:a%b表示以a开头,以b结尾的任意长度的字符。三个常用的字符串截取函数:substr(column,1,n)left(column,n)right(column,n)str=’abcdefg’substr(str,1,3):’bcd’left(s…

    2022年7月13日
    56
  • 大数据平台框架、组件以及处理流程详解

    大数据平台框架、组件以及处理流程详解数据产品和数据密不可分作为数据产品经理理解数据从产生、存储到应用的整个流程,以及大数据建设需要采用的技术框架Hadoop是必备的知识清单,以此在搭建数据产品时能够从全局的视角理解从数据到产品化的价值。本篇文章从三个维度:1.大数据的处理流程2.大数据的的平台框架Hadoop3.Hadoop生态圈组件理解了数据从产生到场景应用每个环节的流程过程以及企业在建立大数据平台时需要采用的技术…

    2022年5月23日
    145
  • 俞敏洪老师在新东方20期新教师培训会议上的讲话

    俞敏洪老师在新东方20期新教师培训会议上的讲话亲爱的各位老师,    大家晚上好!  每次见到新东方教师我都特别开心,不仅仅是因为你们是新东方的教师,而是因为你们是比我更加年轻的一代。如果说中国的未来在哪里,就在你们身上;如果说新东方的未来在哪里,也在你们身上;也许未来的总裁或者董事长也在你们中间,所以我要对你们在座的每一位表示足够的尊重。  在座的各位都是比较年轻的教师,大部分人可能是第一次来北京,因为都是新老师。如

    2022年9月12日
    0
  • Compilation failed to complete

    Compilation failed to complete

    2021年9月30日
    43
  • 直和和直积_什么是直积举个例子

    直和和直积_什么是直积举个例子今天又在文章中看到直和和直积的概念,顺手baidu了一下,粘贴下来,其实以前矩阵论有讲过的。。。还是到用的时候印象最深。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200609171605249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80ODA5NDczMg==,size_…

    2025年6月14日
    1
  • uni-app uni.uploadFile上传图片前后端(java)详解

    uni-app uni.uploadFile上传图片前后端(java)详解近日在使用uni.uploadFile上传图片时,碰到后端收到不到文件的问题,网上没有写uni-appjava后端的处理实例,小程序到是有很多,但都是单文件上传,即使是多文件上传,也是采用一个for循环多次调用uploadFile函数,对文件一个一个提交。伪代码如下://微信小程序为例:for(vari=0;i<filePaths.length;i++){…

    2022年6月15日
    1.0K

发表回复

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

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