当前位置: 首页 > news >正文

重载、重写、重构概念辨析

首先,重载、重写、重构都表现为方法名相同

重载

重载(overload),表示同一类的方法之间的关系,至少有以下其中一种情况

  • 参数个数不同
  • 参数类型不同
  • 参数顺序不同

注意,返回值类型不同不能作为重载依据

重写

重写(覆盖,override),表示父类与子类的方法之间的关系,可以简单理解成“外壳不变,核心重写”,至少有以下其中一种情况

  • 方法实现不同
  • 方法权限不同(权限只能从小的范围到大的范围改变,private —> protected —> public)
  • 返回值类型不同

注意,重写一定不能修改返回值和形参

此外,并非所有的方法都可以被重写,如构造方法、 final 的方法、 static 的方法不能被重写

重构

重构,是重写的一种特殊方式(重构 ⊂ 重写),子类与父类的成员方法的返回值、方法名称、参数类型及个数完全相同,唯一不同的是方法实现内容

💬相关

关于 Java 中重载与重写概念的介绍

https://www.runoob.com/java/java-override-overload.html

注意,前文所提的“重构”指“方法重构”,和“代码重构”完全不是一个意思

此处引用《重构-改善既有代码的设计》中对于“代码重构”(code refactoring)的描述

📑引用

所谓重构(refactoring)是这么一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构是一种经千锤百炼形成的有条不紊的程序整理方法,可以最大限度地减少整理过程中引入错误的几率。本质上说,重构就是在代码写好之后改进它的设计 。
—— Martin Fowler

http://www.lryc.cn/news/14795.html

相关文章:

  • 第九章 - 多表查询(join,left join 等)与合并查询(union union all)
  • matplotlib学习笔记(持续更新中…)
  • STM32 SystemInit()函数学习总结
  • 【Spring Boot 原理分析】- 自动配置
  • 简明易懂的JVM理解
  • 新考纲下的PMP考试有多难?
  • 朗润国际期货:知名投行/大佬打Call记
  • 遗传算法及Python实现
  • 零基础 Ubuntu 20.04.01 下搭建51单片机开发环境[开源编译器SDCC]
  • 手摸手快速入门 正则表达式 (Vue源码中的使用)
  • TCP/IP网络协议族分成及其每层作用
  • 041、子序列类型问题(labuladong)
  • linux系统开机文段释义
  • 抽奖动画大转盘抽奖思路与做法
  • Java实现 - 华为2016研发工程师编程题
  • nginx的七层负载均衡
  • 信息加密技术
  • RS485通信总线详解
  • 罗技LogitechFlow技术--惊艳的多电脑切换体验
  • 社招中级前端笔试面试题总结
  • 东南大学研究生上学期英语期末总结
  • leaflet 删除所有的marker图层,保留其他图层(085)
  • 双因素方差分析全流程
  • 微信公众号抽奖怎么做_分享微信抽奖小程序制作的好处
  • 逻辑回归—分类问题的操作顺序
  • 查询服务器tns文件路径,oracle数据库tns配置方法详解
  • 【数据结构】链表
  • 一文讲明Hystrix熔断器
  • 第12篇:Java类核心构成要素分析
  • 记一次 .NET 某医保平台 CPU 爆高分析