java 调用祖父方法

在文章保护的重点中,我详细介绍了“受保护”如何扩展“包私有”访问。 我在那儿写道:

你能做的是

  • 覆盖子类中的方法或
  • 使用关键字super调用parent方法。

通常,这实际上是您可以使用受保护的方法完成的所有操作。

(请注意,在本文中,我讨论了方法和方法调用,但是关于字段,构造函数的说法非常相似。)

如果您可以调用super.method()来访问父级的method()即使实际的类已被覆盖,那么为什么不能调用super.super.method()呢?

绝对正确且简短的答案是:因为Java语言不允许您这样做。 (尽管JVM可以 ,但是您不应该这样做。)您不能直接访问祖父母方法而跳过父方法。 有趣的问题是:为什么?

原因在于面向对象的原则。 扩展类时,将扩展该类的已定义功能。

父类扩展了另一个类(祖父母类)的事实是实现的一部分,与该类之外的任何其他代码无关。 这是封装的基本原理:向外部世界宣传类的定义功能,但将实现保持私有状态。 有些秘密甚至对您的儿子也不为人知。 “ Nich vor dem kind。”

通常这是原因。 如果您可以直接访问祖父母,则将创建对父亲实现的依赖,这将违反封装。

翻译自: https://www.javacodegeeks.com/2015/01/calling-grandparent-methods-in-java-you-can-not.html

java 调用祖父方法

java 调用祖父方法_在Java中调用祖父母方法:您不能相关推荐

  1. python中执行linux命令(调用linux命令)_常见Python中调用Linux命令

    有时候我们需要从Python中执行Linux命令,下面就介绍几种方法? 1. os 模块: 1.1 os.system 函数: system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果. ...

  2. java list sublist方法_聊聊ArrayList中的subList方法

    开发过程中遇到的坑 开发过程经常会使用subList做分页处理. 比如下面的代码 while(pageIndex < maxSize) { List temp = userIds.subList ...

  3. python调用ping命令_在Python中调用Ping命令,批量IP的方法

    #!/usr/bin/env python #coding:UTF-8 ''''''' Author: jefferchen@163.com 可在命令行直接带目的IP,也可将IP列表在文本文件中. p ...

  4. bootstrap方法_中介效应中的bootstrap方法

    当我们有如上图所示的中介模型时,x--m的系数为0.1,m--y的系数也为0.1,这两个系数是显著的.但是0.1*0.1=0.01,此时中介效应还是显著的吗? 为了解决这个问题,有人提出只要两条路径都 ...

  5. mysql视图中调用函数写法_从视图中调用函数

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at

    [http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...

  7. 为什么 wait 方法要在 synchronized 中调用?

    作者:Yujiaao 来源:https://segmentfault.com/a/1190000019962661 一个有难度的 Java 问题,wait 和 notify. 它们是在有 synchr ...

  8. java提高篇四_(转)java提高篇(四)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  9. 达内java面试题集_达内java面试题

    JAVA面试题-COREJAVA部分1.在main(String[] args)方法内是否可以调用一个非静态方法?答案:不能2.同一个文件里是否可以有两个public类?答案:不能3.方法名是否可以与 ...

  10. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

最新文章

  1. LongAdder解析 1
  2. ping连接linux无法访问目标主机,无法访问目标主机是什么情况【解决方法】
  3. codeforces 719C (复杂模拟-四舍五入-贪心)
  4. typescript断言
  5. 一直苦于没有好的资产管理软件,GLPI能解决吗?
  6. bat 存储过程返回值_为什么不推荐使用存储过程?
  7. KNNClassifier
  8. Spring框架IOC和AOP的实现原理(概念)
  9. 网站整体流程_企业建设网站流程解析-上海回声网络
  10. 3结构介绍_接收机基本结构
  11. 微擎系统 微信支付 get_brand_wcpay_request:fail
  12. Android 13运行时权限变更一览
  13. rep()函数的使用
  14. 云和恩墨mysql_云和恩墨携手华为云鲲鹏云服务探索政企数据库升级的“新引擎”...
  15. 场效应管 - MOSFET
  16. javascript - 字符串的操作
  17. iOS 监听耳机状态
  18. ${pageContext.request.contextPath}不生效的问题
  19. 基于centos7 部署 NetBox3
  20. 毕业论文答辩PPT制作技巧_01

热门文章

  1. P4139-上帝与集合的正确用法【欧拉定理】
  2. 【斜率优化】Cats Transport(luogu-CF 311B)
  3. 线段树-Chossing Ads-分治,主元素思想,神题
  4. SpringCloud Ribbon(六)之服务实例过滤器ServerListFilter
  5. org.apache.ibatis.builder.BuilderException: Could not find value method on SQL annotation
  6. 汇编语言(二十三)之求一个数的补数
  7. 漫画:什么是计数排序
  8. 如何让面试官认可你的简历
  9. Vue父组件使用子组件时,需要携带参数,函数内如何获取子组件给的值
  10. 亦云小组KTV点歌系统简介