`
dandy
  • 浏览: 65480 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一揽子交易

    博客分类:
  • java
阅读更多
出自《java puzzle》


下面这个程序设计在不同的包中的两个类的交互,main方法位于hack.TypeIt中。那么,这个程序会打印什么呢?

package hack;
import click.CodeTalk;
public class TypeIt {
  private static class ClickIt extends CodeTalk {
    void printMessage() {
      System.out.println("Hack");
    }
  }
  public static void main(String[ ] args) {
    ClickIt clickit = new ClickIt();
    clickit.doIt();
  }
}
package click;
public class CodeTalk {
  public void doIt() {
    printMessage();
  }
  void printMessage() {
    System.out.println("Click");
  }
}


本谜题看起来很直观。Hack.TypeIt的main方法对TypeIt.ClickIt类实例化,然后调用其doIt方法,该方法是从CodeTalk继承而来。接着,该方法调用printMessage方法,它在TypeIt.ClickIt中被声明为打印Hack。然而,如果你运行该程序,它打印的将是Click。怎么会这样呢?
上面的分析做出了一个不正确的假设,即Hack.TypeIt.ClickIt.printMessage方法覆写了click.CodeTalk.printMessage方法。一个包内私有的方法不能被位于另一个包中的某个方法直接覆写[JLS 8.4.8]。在程序中的这两个twoMessage方法是无关的,它们仅仅是具有相同的名字而已。当程序在hack包内调用printMessage方法时,运行的是hack.TypeIt.ClickIt.printMessage方法。这个方法将打印Click,这也就解释了我们所观察到的行为。
如果你想让hack.TypeIt.ClickIt中的printMessage方法覆写在Click.CodeTalk中的该方法,那么你必须在Click.CodeTalk中的该方法声明之前添加protected或public修饰符。要使该程序能够编译,你还必须在hack.TypeIt.ClickIt的覆写声明的前面添加一个修饰符,该修饰符与你在Click.CodeTalk的printMessage方法上放置的修饰符相比,所具备的限制性不能更多[JLS 8.4.8.3]。换句话说,两个printMessage方法可以都被声明为是public的,也可以都被声明为是protected的,或者,超类中的方法被声明为是protected,而子类中的方法被声明为是public的。无论你执行了上述三种修改中的任何一种,该程序都将打印Hack,从而表明确实发生了覆写。
总之,包内私有的方法不能直接被包外的方法声明所覆写。尽管包内私有的访问权限和覆写结合到一起会导致某种混乱,但是Java当前的行为是允许使用包的,以支持比单个的类更大的抽象封装。包内私有的方法是它们所属包的实现细节,在包外重用它们的名字是不会对包内产生任何影响的。
2
0
分享到:
评论

相关推荐

    BasketTradingSystem:篮子交易系统将与盈透证券交易工作站一起使用

    此一揽子订单系统与IB TWS中提供的BasketTrader不同,它运行一个自定义策略,该策略用作自动一揽子交易系统,该系统利用一揽子头寸的相对买卖差价大小来削减这些金融产品的利差成本。仪器,尤其是那些流动性很强的...

    Java解惑[高清].pdf

    谜题70:一揽子交易 167 谜题71:进口税 169 谜题72:终极危难 171 谜题73:隐私在公开 173 谜题74:同一性的危机 175 谜题75:头还是尾? 177 名字重用的术语表 180 第9 章更多库之谜 183 谜题76:乒乓 183...

    java 谜题95

    一种疑似排序的惊人传奇 104 Java谜题7——更多的类谜题 107 谜题66:一件私事 107 谜题67:对字符串上瘾 110 谜题68:灰色的阴影 111 谜题69:黑色的渐隐 113 谜题70:一揽子交易 114 谜题71...

    Java解惑(谜题)CHM中英文双版本

    谜题70:一揽子交易 谜题71:进口税 谜题72:终极危难 谜题73:你的隐私正在公开 谜题74:同一性的危机 谜题75:头还是尾? 名字重用的术语表 Java谜题8——更多的库谜题 谜题76:乒乓 谜题77:搞乱锁的...

    第五章 关联分析1

    02/14/2018 数据挖掘导论,第 2 版 2关联规则挖掘给定一组交易,根据交易中其他项目的出现情况找到预测项目出现的规则市场一揽子交易1 面包,牛奶2 面

    bill-nicknames:账单的流行昵称和关键字表,手动策划

    同样,“奥巴马医改”应与《 以及相关的《 》相匹配,这些法案作为一揽子交易通过,共同定义了人们对“奥巴马医改”的看法。 一种既具有精确性又具有灵活性的可能方法是添加具有关系标志的另一列,以区分完全引用...

    使用 MATLAB 进行算法交易 - 2009 年更新:来自 2009 年 5 月 28 日网络研讨会的 M 文件脚本和 Simulink 模型-matlab开发

    包括: 玛丽莎最近邻模型追踪止损代码Takens定理的说明还包括显示以下内容的 Simulink 模型: 移动平均线交叉模型简单跟踪 FTSE 100 - 一揽子交易简介使用 Stateflow 的布林带模型基于 Sanmay Das 论文的简单做市...

    可交易许可证在交通需求管理中的应用前景 (2013年)

    为改善交通需求管理策略的实施效果、提升社会公平性,介绍了一揽子基于可交易许可证的交通需求管理方案。回顾了可交易许可证方法在交通需求管理领域的理论发展和实践情况;与另一交通需求管理重要策略――拥挤收费相...

    一揽子技巧和深人重新识别的强大基准-Python开发

    IEEE多媒体交易(已接受)。 [期刊版本(TMM)] [PDF] [幻灯片] [海报]新闻! 基于强大的基准,我们在2020年AICity挑战赛上获得了第三名。[PDF] [Code]新闻! 我们的期刊版本已被IEEE Transactions on Multimedia...

    论文研究 - 房地产税制对香港房价影响的实证分析

    本文以1999年至2015年的香港为... 根据实证结果,本文认为香港政府应进一步明确房地产税的作用,充分发挥政府在房地产市场中的作用,简化房地产税制,完善房地产税一揽子计划。 ,以便在房地产税中起到抑制房价的作用。

    股票买卖最佳时机leetcode-EqBasket:篮子期权是一种期权,其收益取决于投资组合或一篮子资产的价值。股票篮子期权中的资产可以是股票

    投资者可以在一次交易中管理一揽子或投资组合的风险,而不是对冲每项资产。 单笔交易的好处可能很大,尤其是在避免与对冲篮子或投资组合的每个组成部分相关的成本时。 在没有积极管理的情况下,购买一篮子股票是参与...

    走向生物技术专利池?-研究论文

    我们分析了专利池(专利持有人同意将其知识产权作为一揽子许可的协议)在多大程度上可以用作促进生物技术交易的机构。 专利池已经在消费电子产品和其他领域获得成功使用,但是尽管交易成本降低了潜力,但它们并未在...

    海外上市之VIE 构架浅析.docx

    现纽约证券交易所、纳斯达克交易所和香港联交所等国际知名交易所都接受注册在开曼群岛、英属维尔京群岛(BVI)的公司挂牌上市。但因BVI 注册公司透明度低不易被接受,所以选择开曼作为上市主体。

    【精品整理】2021年7月份新能源资料汇总.zip

    0715-欧盟绿色协议一揽子计划最新资料 0716-新型数据中心发展三年行动计划 0719-报告-碳达峰与环境空气质量改善双目标下的山西减煤路径 0720-碳中和目标下中国电力系统技术发展方向思考 0720《风力发电建设工程质量...

    华西证券安卓平板最新版

    华彩人生1点通理财服务终端(平板安卓版)是由华西证券倾情打造,支持使用GPRS和WIFI等上网方式,集行情、交易、华西特色产品及服务为一体。 “华彩人生1点通”为您个性化匹配投资全过程的“一揽子解决方案”,方案...

    标准普尔 500 指数股票的平均方差投资组合优化:投资组合优化示例,可用于回测横截面股票策略-matlab开发

    500 指数内的每只股票,并提交以下限价单: 1) 买入限价单:mean-alpha 标准偏差2) 限价单:均值+阿尔法标准偏差每个出价策略的历史表现超过过去的“hist_lag”时期被视为一个单独的策略投资组合一揽子策略。...

    专利池会鼓励创新吗? 19世纪缝纫机行业的证据-研究论文

    专利池中的成员同意使用一组专利,就好像它们是所有成员共同拥有的一样,并作为一揽子许可将其授予其他公司。 监管机构倾向于采用集合资金作为鼓励创新的手段:集合资金有望降低其成员的诉讼风险,并降低其他公司的...

    中小型科技企业股权激励方案.docx

    该机构应有一定的融资能力和交易功能,包括当员工离开公司,要以适当的价格买回公司的股份。上市公司的员工持股计划是一次性的一揽子安排,而非上市企业员工持股计划更像一个福利计划。因为高新技术中小企业有高成长性,...

    网上会展的未来发展趋势

    电信运营商是网上会展价值链的基础,依托网交会体系能够面向广大参展企业和参会会员提供网上展会的一揽子服务。电信运营商在对参展、参会企业服务的过程中,获得收益。电信运营商的定位将是平台和网络提供者,采取...

Global site tag (gtag.js) - Google Analytics