java什么是重写什么是重载_方法的重写和重载

java什么是重写什么是重载_方法的重写和重载重写和重载的区别一.重写1.重写概念重写是父类与子类中的多态性,子类可以继承父类中的方法并进行重写,但是要保证几点没有变1)方法返回值类型不变2)参数列表不变3)方法名不变满足了这三点之后,子类中父类的方法就被覆盖了,如果想要调用父类的方法,用super关键字2.重写规则重写也是有一定的规则的,否则会报错重写规则:1)参数列表必须完全与被重写的方法相同;2)返回类型必须一直与被重写的方法相同;3)访问修饰符的权限一定要大于等于父类方法的访问修饰符;4)重写方法一定不能抛出

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

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

重写和重载的区别

一.重写

1. 重写概念

  • 重写是父类与子类中的多态性,子类可以继承父类中的方法并进行重写,但是要保证几点没有变
    1)方法返回值类型不变
    2)参数列表不变
    3)方法名不变
  • 满足了这三点之后,子类中父类的方法就被覆盖了,如果想要调用父类的方法,用super关键字

2.重写规则

  • 重写也是有一定的规则的,否则会报错
  • 重写规则:
    1)参数列表必须完全与被重写的方法相同;
    2)返回类型必须一直与被重写的方法相同;
    3)访问修饰符的权限一定要大于等于父类方法的访问修饰符;
    4)重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常,譬如父类方法声明了一个检查异常 IOException,在重写这个方法时就不能抛出 Exception,只能抛出 IOException 的子类异常,可以抛出非检查异常。

二.重载

1.重载概念

  • 重载也是多态性的一种表现,即同一类中存在多个同名函数,但是参数列表的长度和参数类型不同
  • 调用方法时会根据传入的参数个数和参数类型来选择调用哪个方法
  • 注意: 不能以返回值类型作为函数重载的区分标志
    原因其实很简单:以下两个方法如何区分?这两个方法是无法通过编译的!会报错
 	double sqrt(double do){ 
   return...}
  	float sqrt(double do){ 
   return...}

2.重载规则

  • 参数个数可以不同
  • 参数类型可以不同
  • 对于返回值类型,其实重载没有要求,但是实际上在编写代码过程中,可以看作必须返回值类型相同,因为不同就不能称为重载了,就无法区分了!

三.重写和重载的区别和联系

  • 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gamma分布的分布函数_gamma分布和beta分布

    gamma分布的分布函数_gamma分布和beta分布1.Gamma函数首先我们可以看一下Gamma函数的定义:Γ(x)=∫∞0tx−1e−tdtΓ(x)=∫0∞tx−1e−tdt\Gamma(x)=\int_{0}^{\infty}t^{x-1}e^{-t}dtGamma的重要性质包括下面几条:1.递推公式:Γ(x+1)=xΓ(x)Γ(x+1)=xΓ(x)\Gamma(x+1)=x\Gamma(x)2.对于正整数n,有…

    2022年10月12日
    2
  • Hmily 源码解析 (三) —— 高效异步任务框架的使用

    Hmily 源码解析 (三) —— 高效异步任务框架的使用目录这是hmily的一个核心,hmily之所以高效就是因为hmily把日志的存储维护操作及confirm,cancel的操作通过Disruptor的异步任务框架的方式执行。关于disruptor的原理如下,我没怎么研究过。后我主要分析hmily是如何使用Disruptor这个框架。高性能队列Disruptor的使用剖析Disruptor:为什么会这么快?(一)Ringbuffer的…

    2022年5月21日
    39
  • Canvas之translate、scale、rotate、skew方法讲解!「建议收藏」

    Canvas之translate、scale、rotate、skew方法讲解!「建议收藏」前面说Canvas大致可以分为三类:1.save、restore等与层的保存和回滚相关的方法;2.scale、rotate、clipXXX等对画布进行操作的方法;3.drawXXX等一系列绘画相关的方法;前面主要讲了drawBitmap方法,并举了一个星球浮动的栗子,在那个例子中,星球有大有小,需要移动,有时候可能需求上还需要旋转或错切,有了这些需求,我们就需要使用到与Canvas相关的translate、scale、rotate、skew这几个方法,平移、缩放、旋转、错切,这四个词听起

    2025年8月6日
    2
  • ESLint简介

    ESLint简介一ESLint简介ESLint是一个语法规则和代码风格的检查工具,可以用来保证写出语法正确、风格统一的代码。不管是多人合作还是个人项目,代码规范是很重要的。这样做不仅可以很大程度地避免基本语法错误,也保证了代码的可读性。这所谓工欲善其事,必先利其器,推荐ESLint+vscode来写vue,有种飞一般的感觉。每次保存,vscode就能标红不符合ESLint规则的地方,同时还会做一些简单的自我修正。二启用ESLint1ESLint插件安装vscode的ESLint插件,

    2022年6月18日
    32
  • 绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?[通俗易懂]

    绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?[通俗易懂]上周,有读者私信我说,“二哥,零基础该选择Java还是PHP啊?”我瞬间就误了!PHP?世界上最好的编程语言?后来,又有读者私信问我,“挺纠结的,不知道该选前端还是Java?”真不好选,因为“男怕入错行,女怕嫁错郎”,初学者纠结这个问题也是情有可原。首先来说说PHP,Web蛮荒的年代,PHP真的是王者姿态,连Java可能都要礼让三分,但近些年,PHP只能做一些速成型的外包项目了,如果想增加更多的业务,想在性能上有所改善,PHP就真的很难了!所以,本着不误人子弟的原则,我

    2022年5月26日
    31
  • nurtas aidarbekov_true image2018

    nurtas aidarbekov_true image2018Up主作为CV穷人代表,这一次想要触碰一下papers里最为活跃却又以“Huge”令穷人望而生畏的超级数据集:ImageNet中的ILSVRC2012.还记得依靠氪金“霸道总裁式”碾压一切“noise2image”的BigGAN吗?来不及时间解释了,快上车!##下载可怜穷人的BigGAN-4~8gpusversion>>gitcl…

    2022年10月9日
    2

发表回复

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

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