在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Handler(2)

andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 2)Handler: 你可以构造Han…

OSGi服务测试助手:ServiceCollector

OSGi服务对于基于松耦合组件的系统开发非常有用。 但是,松散的耦合可能使得难以识别与悬挂服务引用有关的问题。 因此,我们通常运行集成测试以确保运行时服务组件的可用性。 为了减少此类测试所需的样板,我编写了一个简单的实用程序类来获取…

搭建struts2框架

struts是一个经典的MVC模式拦截器比过滤器拦截的力度更大 搭建struts2框架1.引入lib包 9个(2.3版本的)common-fileupload;common-io;common-lang3;common-logging;freemaker;javassistGA;ognl;struts2-core;xwork-core; 2. struts2.xml3. web.xml将所有的跳转都交给struts2处…

adams与matlab联合仿真天线,雷达天线模型MATLAB与ADAMS联合仿真 实验.doc

雷达天线模型MATLAB与ADAMS联合仿真 实验雷达天线模型MATLAB与ADAMS联合仿真实验1.导入雷达天线机械系统模型启动ADAMS,弹出如图1所示的对话框,选择“Open an existing database”,打开保存雷达天线模型的文件夹X:\antenna_test(注:X表示盘符…

【ACM】nyoj_139_我排第几个_201308062046

我排第几个时间限制:1000 ms | 内存限制:65535 KB 难度:3描述 现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? …

Apache Cassandra和低延迟应用程序

介绍 多年来, Grid Dynamics拥有许多与NoSQL相关的项目,尤其是Apache Cassandra。 在这篇文章中,我们要讨论一个给我们带来挑战的项目,而我们在该项目中试图回答的问题今天也仍然适用。 数字营销和在线广告在2012年很受欢迎&…

php换设备登录逻辑,登录和退出登录的操作逻辑

登录功能的操作逻辑步骤如下:可以分为五个步骤来实现。1、进入页面先判断用户是否已经登录private void isLogin() {//查看本地是否有用户的登录信息SharedPreferences sp this.getActivity().getSharedPreferences("user_info", Context.MODE_PRIVATE);…

Visual studio代码行数统计

Visual studio代码行数统计 Visual Studio中的搜索功能支持正则表达式(虽然语法比较诡异),我们完全可以通过正则表达式来遍历整个解决方案从而获得代码行数。 ^:b*[^:b#/].*$ 需要注意:#开头和/开头或者空行都不计入代码量。 如…

在JAX-RS中处理异步请求中的超时

JAX-RS 2.0在客户端和服务器端都支持异步编程范例。 这篇文章重点介绍了使用JAX-RS(2.0)API在服务器端执行异步REST请求时的超时功能 无需过多介绍,这里是一个快速概述。 为了以异步方式执行方法,您只需 需要指定AsyncResponse接…

strspn php,php返回在字符串中包含 charlist 参数中指定的字符数目的函数strspn()

实例返回在字符串 "Hello world!" 中包含字符 "kHlleo" 的数目&#xff1a;<?php echo strspn("Hello world!","kHlleo");?>定义和用法strspn() 函数返回在字符串中包含 charlist 参数中指定的字符数目。提示&#xff1a;请使…

Java十大简单性能优化

关于“ web scale ”这个流行词有很多炒作&#xff0c;人们花了很多时间来重新组织他们的应用程序体系结构&#xff0c;以使其系统“规模化”。 但是什么是扩展&#xff0c;我们如何确保可以扩展&#xff1f; 缩放的不同方面 上面提到的炒作主要是关于扩展负载 &#xff0c;即…

C#_获取汉字拼音

using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; namespace Ctr.Common.Tools {/// <summary>/// 汉字转拼音静态类,包括功能全拼和缩写&#xff0c;方法全部是静态的/// </summary>public static cla…

php在苹果手机上传不了图片大小,ThinkPHP后台上传图片无默认尺寸解决方法

原标题&#xff1a;ThinkPHP后台上传图片无默认尺寸解决方法随着网站移动端的日益普及&#xff0c;对后台数据的兼容性要求也越来越高。后台数据涵盖范围不断扩大的同时&#xff0c;使得程序处理能力也必须逐步提高。使用ThinkPHP进行长沙网站开发时&#xff0c;后台kindeditor…

幂等与时间解耦之旅

HTTP中的幂等性意味着相同的请求可以执行多次&#xff0c;并且效果与仅执行一次一样。 如果用新资源替换某个资源的当前状态&#xff0c;则无论您执行多少次&#xff0c;最终状态都将与您仅执行一次相同。 举一个更具体的例子&#xff1a;删除用户是幂等的&#xff0c;因为无论…

开发者最容易犯的13个JavaScript错误

开发者最容易犯的JavaScript错误&#xff0c;总结出13个。这些当中可能少不了你犯的错误。我们描述了这些陋习&#xff0c;并列出来解决办法&#xff0c;希望对开发者有帮助。 1.for...数组迭代的用法 Usage of for..in to iterate Arrays 举例&#xff1a; var myArray [ “a…

php h2,微信连接失败:一直返回h2Moved/h2 (终于搞定了)

这几天都OK的&#xff0c;可以正常访问&#xff0c;统计数据上只出现过一次访问失败&#xff0c;但是平均耗时增加了30%估计是上次那个心脏滴血事件后&#xff0c;腾讯要求停用SSLv3&#xff0c;必须用TLSv1&#xff0c;但是之前一直没有停止SSLv3的支持&#xff0c;现在真停了…

使用Selenium进行Spring Boot集成测试

Web集成测试允许对Spring Boot应用程序进行集成测试&#xff0c;而无需进行任何模拟。 通过使用WebIntegrationTest和SpringApplicationConfiguration我们可以创建加载应用程序并在普通端口上侦听的测试。 Spring Boot的这一小增加使使用Selenium WebDriver创建集成测试变得更加…

begin ~~~

是时候需要用博客记录自己的code life了~~~ 大二暑假~~~ 需要的tech&#xff1a;php linux j2se ssh asp.net c#winform python htmlcssjsajax svngit转载于:https://www.cnblogs.com/tonyluj/p/3252185.html

在Spring MVC流中使用rx-java Observable

Spring MVC现在已经支持异步请求处理流程了一段时间&#xff0c;该支持内部利用了Tomcat / Jetty等容器的Servlet 3异步支持。 Spring Web Async支持 考虑一下需要花一点时间处理的服务呼叫&#xff0c;该服务呼叫具有延迟&#xff1a; public CompletableFuture<Message&…

宝塔php gd库,宝塔面板安装 EasyImag – 一款最简单图床的安装体验

近日闲逛&#xff0c;发现了一款图床&#xff0c;一款开箱即食的简单图床程序。因为没有数据库所以安装起来也是异常简单&#xff0c;我们看看功能&#xff1a;支持设置图片质量支持仅登录后上传支持QQ截图&#xff0c;剪切板上传支持在线管理(增删改查)支持上传图片转换为指定…