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

你能做的是

  • 覆盖子类中的方法或
  • 使用关键字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中调用祖父母方法:您不能相关推荐

  1. java 调用祖父方法_在Java中调用祖父母方法:您不能

    java 调用祖父方法 在文章保护的重点中,我详细介绍了"受保护"如何扩展"包私有"访问. 我在那儿写道: 你能做的是 覆盖子类中的方法或 使用关键字super ...

  2. 如何在java中调用js方法

    [java] view plain copy/* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEngineManager manager ...

  3. groovy import java_在Java中调用Groovy方法的又一种方法:使用接口

    1.定义Java接口包含在Java中需要调用的Groovy方法 public interface IFoo { public Object run(Object foo); } 2.创建Groovy类 ...

  4. java怎么调用void方法_如何使用反射在java中调用void方法

    如果我使用反射调用方法,我可以让它正常工作而不抛出空指针异常的唯一方法是在我调用的方法中返回一个int值. 例如,我想调用的方法: public int setScore(int n) { this. ...

  5. java中调用 dll 动态库的简洁方法 JNative

    Java中调用DLL方法,是通过JNI接口实现的,http://www.ibm.com/developerworks/cn/java/l-linux-jni/ 这里有详细的说明.大概是先用Java写一 ...

  6. java中调用js_java编程中实现调用js方法分析

    本文实例讲述了java编程中实现调用js方法.分享给大家供大家参考,具体如下: /* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEng ...

  7. java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本

    举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...

  8. Java中获得了方法名称的字符串,怎么样调用该方法

    问题: Java中获得了方法名称的字符串,怎么样调用该方法 如果我有以下两个变量 Object obj; String methodName = "getName"; 在不知道ob ...

  9. Java实现 for循环输出空心的菱形 在main方法中调用printHollowRhombus()方法完成10行的空心菱形输出,其中 printHollo

    Java实现for循环输出空心的菱形 @author asus 在main方法中调用printHollowRhombus()方法完成10行的空心菱形输出,其中 printHollowRhombus() ...

最新文章

  1. 域控制器配置系统要求
  2. zabbix设置邮件报警
  3. 线上oom 自动kill 程序
  4. oracle中的 where 1=1 和where 11
  5. linux usb免驱麦克风,Android无驱usb音频实现
  6. SAP License:新总账
  7. LeetCode(118)——杨辉三角(JavaScript)
  8. GitHub 断供危机来了!权威解读程序员应对指南 | CSDN 独家
  9. 森林病虫防治系统 (七)
  10. 一阶差分单位根检验_计量经济学第11讲(时间序列计量经济学模型:平稳性及其检验)...
  11. 【Todo】Java类型转换总结
  12. Java中this关键字的用法
  13. 萤石云谷歌禁用flash_mac chrome屏蔽flash插件怎么办 mac chrome flash启用方法
  14. 蓝牙相关学习:5.BLE协议属性协议层(ATT)
  15. 树莓派 Pico Pi USB串口通信
  16. iOS 限制输入框的字符长度
  17. 华三H3C交换机路由器如何配置dhcp中继
  18. Scratch-(五)满天星-画笔绘制五角星
  19. html怎样制作背题模式和答题模式,科目一背题模式还是答题模式,技巧口诀答题...
  20. 支付宝企业付款PHP版本(转账到支付宝账户)

热门文章

  1. 新闻发布项目——接口类(newsTbDao)
  2. 每日top3热点搜索词统计案例
  3. android volley 上传图片 和参数,Android使用Volley实现上传文件功能
  4. mysql id生成器自定义_MybatisPlus使用自定义Id生成器数据自动填充
  5. 计算机应用基础期中上机考试,期中考试计算机应用基础试卷
  6. 华为交换机ssh思科交换机_华为交换机 ssh 配置(极简版)
  7. javafx 打开新窗口_新的JMetro JavaFX 11兼容版本
  8. tibco汉化包6.3.0_TIBCO BusinessWorks 6和Container Edition与BW5的比较
  9. chameleon 算法_使用Chameleon,Shrinkwrap,Drone / Graphene与Arquillian进行Java EE集成测试...
  10. Hibernate锁定模式– PESSIMISTIC_FORCE_INCREMENT锁定模式如何工作