Java 之 覆写, 重载, 隐藏, 遮蔽, 遮掩
文章目录
- 覆写(override) 存在于子类与父类间
- 重载(overload) 存在于类内部
- 隐藏(hide) 存在于子类和父类间
- 遮蔽 (shadow) 存在于 类内部
- 遮掩(obscure) 存在于类内部
覆写(override) 存在于子类与父类间
一个实例方法可以覆写(override) 在其超类中可以访问到(非private)的具有相同签名的实例方法(非static), 从而使能动态分配(dynamic dispatch) ; 换句话说, VM 将基于实例的运行期类型来选择要调用的覆写方法, 覆写的好处在于子类可以根据需要, 定义特定于自己的行为.
重载(overload) 存在于类内部
在某个类中的方法可以重载(overload)另一个方法, 只要它们具有相同的名字和不同签名.由调用所指定的重载方法是在编译期选定的.
隐藏(hide) 存在于子类和父类间
一个属性, 静态方法或内部类
可以分别隐藏(hide) 在其超类中可以访问到的具有相同名字(对方法而言就是相同的方法签名)的所有属性, 方法或者内部类. 上述成员被隐藏后, 将阻止其被继承.
方法签名: 方法名称 + 参数类型
遮蔽 (shadow) 存在于 类内部
一个变量, 方法或类
可以分别 遮蔽(shadow) 在类内部具有相同名字的变量, 方法 或类. 如果一个实体被遮蔽了, 那么就无法用简单名引用到它, 简单名将引用到遮蔽声明中的实体
遮掩(obscure) 存在于类内部
一个变量可以遮掩具有相同名字的一个类, 只要它们都在同一个范围内:
如果这个名字被用于变量与类都许可的范围, 那么它将引用到变量上.
相似的, 一个变量或一个类型可以遮掩一个包.
遮掩是唯一一种两个名字位于不同的名字空间的名字重用形式
, 这些名字空间包括: 变量, 包, 方法 或 类型.
如果一个类或一个包被遮掩了, 那么你不能通过其简单名引用到它, 除非是在这样一个上下文环境中 , 即语法只允许在其名字空间中出现一种名字.
Java 之 覆写, 重载, 隐藏, 遮蔽, 遮掩相关推荐
- [改善Java代码]覆写equals方法必须覆写hashCode方法
覆写equals方法必须覆写hashCode方法,这条规则基本上每个Javaer都知道,这也是JDK API上反复说明的,不过为什么要这样做呢?这两个方法之间有什么关系呢?本建议就来解释该问题,我们先 ...
- java 中覆 写tostring_如何在Java中正确覆盖toString()?
如何在Java中正确覆盖toString()? 听起来有点愚蠢,但我需要帮助我的toString()方法,这是非常irking. 我尝试在网上查找,因为toString是搞砸了,"没有找到K ...
- 遮掩java_关于java中的覆写、重载、隐藏、遮掩、遮蔽
最近在重新学习java,发现了以前未发现的几个概念,从网上搜索了一些资料,现在整理下.对于我来说,以前只是知道java中的覆写 重载和隐藏,这次却发现还有遮掩和遮蔽这两个概念.下面是整理的一篇文章. ...
- “类的使用”编程规范(一)覆写(重写)、重载、隐藏、遮蔽、遮掩
"类的使用"编程规范(一) 1调用静态方法的注意事项 当子类继承父类的静态方法时,如果直接用实例来调用就会将子类中的静态方法隐藏,结果显示为父类的静态方法. package Tas ...
- JAVA和遮掩_JAVA 你不知道的秘密 覆写,重载,隐藏,遮蔽,遮掩
覆写(override) 一个实例方法可以覆写(override)在其超类中可访问到的具有相同签名的所有实例方法,从而使能了动态分派(dynamic dispatch):换句话说,VM 将基于实例的运 ...
- java中的几个术语(覆写override,隐藏hiding,重载overload,遮蔽shadowing,遮盖obscuring)
今天看完<Java Puzzlers>的第八章,里面各种name reuse,章节最后做了一个非常细致的总结! Overriding(覆写) 一个实例方法可以override它的父类中可以 ...
- 关于java方法的重载(Overloading),覆写(Override)以及final 方法的几点说明
昨天在一个群里面一个群友问道final 方法可不可以重载,我不假思索的说final 方法不能继承不能重载.后来晚上睡不着觉想想总觉得不对头,翻翻书一看自己简直就是胡说八道,才意识到这些基础概念的东西时 ...
- Java面向对象:覆写与重载
override和overload是非常容易混淆的概念. 一.override override是"覆写",是子类实现接口,或者继承父类时,保持方法签名完全相同,实现不同的方法体, ...
- java 重载 大于_详解java重载与覆写的区别
很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: 首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统 ...
最新文章
- pointnet 结果可视化_PointNet论文复现及代码详解
- 液晶显示屏怎么显示泰文_液晶显示屏概念股大涨 液晶显示屏概念股一览表
- vue教程1:第一个页面HelloVue快速搭建
- 云炬Android开发笔记 6启动图功能开发与封装
- 12bit的图像如何向8bit转化_干货分享 | 如何鉴别Western Blot图像的真实性?
- Oracle shared_pool_reserved_size参数设置说明
- python数据库-mongoDB的高级查询操作(55)
- 机器学习:残差学习、RNN、GAN、迁移学习、知识蒸馏
- 旅游后台管理系列——使用maven tomcat插件启动web工程
- 脱不花,如何成为高效学习的人
- Android 动画
- 王道训练营3月12日
- 数据库中的左连接和右连接的区别
- 程序设计实践之车辆信息管理系统
- UCOSIII实时操作系统
- 20181216——自定义全局指令
- robots文件的优化
- 当前数据中心运维管理工作中存在的问题
- Vue3.0系列(一): VUE3.0的新特性
- 2021Java面试心得:java性能优化实践pdf
热门文章
- 微信小程序实现短信认证功能
- swagger使用流程梳理
- 如何从外网SSH访问家中的树莓派?
- dcos - marathon -lb 问题
- 电脑上传网速怎么测试软件,Win7如何测试电脑上传速度?
- 调取大华SDK获取IPC音视频流并得到H264帧
- 尝试用 vue 实现灭霸打响指英雄消失的效果 demo
- CSDN常见问题汇总
- Python Eric7+PyQt6环境配置,GUI程序开发
- 【阅读】A Comprehensive Survey on Electronic Design Automation and Graph Neural Networks——EDA+GNN综述翻译