在Java虚拟机的分派中,我们知道:

重载容易产生的问题:重载是根据参数的静态类型选择执行方法,而方法重写是根据参数的动态类型选择执行方法。
例如People p = new Man();那么People是静态类型,Man是动态类型。
覆盖机制很容易让期望落空。因为如果不知道重载是根据参数的静态类型选择执行方法,那么覆盖就不能执行期待执行的方法。

因此,应该避免胡乱使用重载机制。

慎重使用重载机制方法是:

  • 1.避免导出两个相同参数数目的重载方法。

  • 2.能够导出两个相同参数数目的重载方法,但是对于每个重载方法,至少有一个参数是跟其他重载方法的参数是完全不同的。

  • 3.改变方法名代替重载。例如ObjectOutputStream的write方法有writeInt(int),writeLong(long),writeBoolean(boolean),这样显得可读性强而且不会发生重载的问题。

Effective Java之慎用重载(四十一)相关推荐

  1. Effective Java之慎用可变参数(四十二)

    Java 1.5增加可变参数方法,可变参数方法接受0个或者多个指定类型的参数. 可变参数的机制是通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法 ...

  2. 四十一、深入Java中的 File类

    @Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  3. 【零基础学Java】—哈希值(四十一)

    [零基础学Java]-哈希值(四十一) 一. HashSet集合的介绍 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许重复的元素 没有索引,没有带 ...

  4. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  5. Effective Java读书笔记四:通用程序设计

    第45条:将局部变量的作用域最小化 在第一次使用变量时的地方声明: 几乎每个局部变量的声明都应该包含一个初始表达式: 如果在终止循环之后不需要循环变量的内容,for循环优于while循环.(for循环 ...

  6. 《Effective Java》真的是一本值得一直去钻研的好书

    文章目录 <Effective Java>读书笔记 第一章 引言 第二章 创建和销毁对象 1 考虑使用静态工厂方法替代构造方法** 2 当构造方法参数过多时使用builder(建造者) 模 ...

  7. 读完《Effective Java》后,总结了 50 条开发技巧

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | Dong GuoChao 来源 | https ...

  8. Effective Java读书笔记六:方法

    第38条:检查参数的有效性 绝大多数方法和构造器对于传递给它们的参数值都会有些限制.比如,索引值必须大于等于0,且不能超过其最大值,对象不能为null等.这样就可以在导致错误的源头将错误捕获,从而避免 ...

  9. 《Effective java》—–读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ...

最新文章

  1. 潜意识微笑,与钱无关——博客获奖有感
  2. 排序(3)---------冒泡排序(C语言实现)
  3. [Hihocoder 1289] 403 Forbidden (微软2016校园招聘4月在线笔试)
  4. apache解析php的方法
  5. 机器学习降维方法总结
  6. 数据库连接用户名和密码加密
  7. Js~对数组进行分组户数
  8. GitHub上个最有意思的项目合集(技术清单系列)
  9. tensorflow一维卷积输入_tensorflow中一维卷积conv1d处理语言序列的一点记录
  10. 厉害了!阿里安全图灵实验室在ICDAR2017 MLT竞赛刷新世界最好成绩
  11. 将下列数组中奇数和偶数分别存放于两个不同的两个数组
  12. 中小学计算机中级班教学目标,计算机中级考试教学目标
  13. LeetCode 769. Max Chunks To Make Sorted
  14. Linux 任务计划的三种实现方式(at、batch、cron)
  15. 武汉男人一个月要赚多少钱,老婆才不用上班?心碎成渣……
  16. 液压齿轮泵的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. 国家高新技术企业认定要求及快速通过的方法
  18. python 累加直方图_二维数组的Python累积直方图
  19. 什么是操作系统中所说的原语(Primitives)
  20. PhotoSwipe 图片浏览插件使用方法 - 简单

热门文章

  1. C++虚继承(七) --- 虚继承对基类构造函数调用顺序的影响
  2. C/C++函数调用约定
  3. 云原生网络代理(MOSN)的进化之路
  4. dy之xgorgon0404参数
  5. python logging日志模块的使用
  6. 音视频技术开发周刊 63期
  7. ElasticSearch搜索语法学习(term,filter,bool,terms,range)
  8. GoLang:你真的了解 HTTPS 吗?
  9. 腾讯AI Lab发布「电竞虚拟人」,视频版本一次看!
  10. 微服务之consul(一)