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

javaSE.方法的重写

因为默认比较大的是两个对象是否为同一个对象,所以这里肯定得到false,但有些情况,实际上我们希望名字,年龄,性别相同,那么这肯定是同一个人,但这里做不到.

我们需要修改一下equals方法的默认实现来完成,这里就要用到方法的重写. 

方法的重写

方法的重写不同于之前的重载,方法的重载是为某个方法提供更多种类,而方法的重写是覆盖原有的方法实现.

在子类写一个实现,把父类的方法覆盖掉,优先使用最近的.

equals 的重写

 toSring重写

这样生成上一行的那些注释

 因为println会调用toString, toString方法重写了

 原本是这样的

重写父类的父类 worker的父类Person,再父类Object

无论多少级都可以重写

 

重写test()

父类不是public 用不了 

 子类不一定要跟父类权限等级一样,子类可以比父类高权限,但是不能比父类权限低

调用对象实际类型的,就是new的什么

test 全改成public权限

静态方法不支持重写,因为它属于类本身,但是它可以被继承

基于这种方法可以重写的特性,对于一个类定义的行为,不同子类可以出现不同的行为,

比如考试,学生考试的可以得到A,而工人去考试只能得到D:

多态的体现:不同子类,对于同一个方法产生不同的结果

final

如果我们不希望,子类重写某个方法,我们可以在方法前添加final关键字,表示这个方法已经是最终形态.

final 加载String类前面

只能构造的时候才能赋值,有初始值构造也不能赋值了,只能赋值一次. 

final 用字Person类前面

无法继承了,最终形态.

可以重载但是不能重写了

父类方法private权限也不能重写,只是重新创建新方法

没报错,但只是重新创建了新方法,并不是重写.

 

super 直接使用原本的方法

  super不能再main那里用,要在类里边用,例如上面的worker

static 里面不能用super 静态的属于类的,也不能用this

父类private,子类无法重写

 

父类private子类public的情况,

正常都是public权限时

 当作使用时无法调用子类test

 正常使用


http://www.kler.cn/a/520274.html

相关文章:

  • Windows 靶机常见服务、端口及枚举工具与方法全解析:SMB、LDAP、NFS、RDP、WinRM、DNS
  • 2024年度总结:技术探索与个人成长的交织
  • 国产编辑器EverEdit - 输出窗口
  • 落地 ORB角点检测与sift检测
  • [java] 面向对象进阶篇1--黑马程序员
  • 微信阅读网站小程序的设计与实现(LW+源码+讲解)
  • Python元组详解:不可变序列的魅力
  • git reset (取消暂存,保留工作区修改)
  • 一些烦人的go设置 goland
  • 系统架构设计基础:概念与原则
  • 笔灵ai写作技术浅析(一)
  • Python3 【正则表达式】项目实战:5 个学习案例
  • 助记词登录时提示无效怎么办?
  • Windows10官方系统下载与安装保姆级教程【U盘-官方ISO直装】
  • salesforce中如何获取一个profile的18位id
  • HarmonyOS简介:HarmonyOS核心技术理念
  • 慢牛提速的内在逻辑-基本量价关系分析和主散心理博弈
  • 前端开发新趋势:使用 Zustand 打造轻量级状态管理
  • 一个简单的自适应html5导航模板
  • FPGA 使用 CLOCK_DEDICATED_ROUTE 约束
  • 【JS|第28期】new Event():前端事件处理的利器
  • Vue 3 中的响应式系统:ref 与 reactive 的对比与应用
  • OpenAI掀桌子!免费版ChatGPT,提供o3-mini模型!
  • 【故障诊断】量子粒子群优化极限学习机实现乳腺癌诊断,(QPSO-ELM)数据分类
  • 深度解析iTransformer:维度倒置与高效注意力机制的结合
  • vue3 react区别