`
dandy
  • 浏览: 67307 次
  • 性别: 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
分享到:
评论

相关推荐

    CPA考试会计科目学习笔记-第二十六章合并财务报表12.doc

    如果企业通过多次交易逐步出售对子公司的股权投资直至失去控制权,需要判断这些交易是否构成“一揽子交易”。 - 如果不是“一揽子交易”,则每次交易按照不失去控制权的情况下的部分处置长期股权投资处理。 - ...

    商务谈判的终局概述(PPT71页).pptx

    条件标志主要看双方在交易条件上的分歧是否缩小,而策略标志则涉及谈判策略的应用,如最后通牒、折中调和、一揽子交易等。其中,最后通牒是一种强烈的逼迫手段,通过设定时间限制来迫使对方让步;折中调和则是寻找...

    商务谈判的签约与履约培训课件.pptx

    3. 一揽子交易策略:将所有谈判议题捆绑在一起,以整体的交易方案寻求共识,避免因单个问题僵持不下。 8.2 商务谈判成交阶段的工作内容: 1. 对谈判成果进行最后总结:回顾谈判过程,确认所有条件是否满足双方期望...

    五步法会计准则在房地产企业收入中的确认问题.pdf

    若合同基于同一商业目的,构成一揽子交易,或价格、履行情况相互关联,可能需要合并处理。合同变更可能导致新的单独合同、原合同终止与新合同订立,或原合同组成部分的调整,企业需根据具体情况选择合适的会计处理...

    商务谈判各阶段的策略教材.pptx

    7. 从谈判策略判定:运用特定的终结性策略,如折中调和、一揽子交易、最后通牒和“冷冻”政策,可能是谈判接近尾声的信号。 8. 结束方式:谈判可能以成交、中止或破裂收场。成交意味着双方达成一致,签订具有约束力...

    商务谈判终结.pptx

    3. 谈判策略判定:特定的策略,如折中调和、一揽子交易、最后通牒和“冷冻”策略,可能是谈判即将结束的信号。这些策略通常具有决定性影响,表明谈判接近最终决策点。 理解并掌握这些知识点,可以帮助谈判者在关键...

    2021年中级会计职称考试《中级会计实务》易考200题及详细解析.pdf

    - 非“一揽子交易”形成的非同一控制下的控股合并,购买日之前持有的被购买方的原股权,在合并财务报表中应确认为公允价值与其账面价值的差额。 6. 外币交易与期末存货计价: - 企业使用人民币作为记账本位币,进口...

    国际商务谈判自学考试复习重点.doc

    22. **一揽子交易**:一次性解决所有问题的协议,所有条款都捆绑在一起,难以单独修改。 23. **汇率风险**:由于汇率变动可能导致的财务损失,可通过货币保值条款等方式管理。 24. **交货风险**:供应商未能按时或...

    四六级考前必背救命词500.pdf

    - 一揽子交易指的是一个包括多个元素(如产品、服务)的交易。 - 打包是指将物品整理在一起,并用包扎材料固定;包裹是打包好的物品。 6. address [ˈædres] n. 地址,住址;演说,讲话 vt. 写姓名地址;向…作...

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

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

    长期股权投资的成本法、权益法、公允价值计量之间核算方法的转换.doc

    在某些情况下,如投资方通过多次交易逐渐增加对被投资单位的持股比例,最终实现控制,这不被视为“一揽子交易”,此时,应由成本法转为权益法,并对之前的交易进行追溯调整。 以上就是长期股权投资的成本法、权益...

    [精选]建造合同管理与财务会计分析.pptx

    反之,若一组合同构成一个整体项目,且满足一揽子交易、密切关联和同时或依次履行的条件,应合并为一个合同处理。 建造合同的结果分为可靠估计和不可靠估计两种情况。对于固定造价合同,结果的可靠性需要满足四个...

    05商务谈判策略.pptx

    应对这些策略的方法包括要求报价依据或直接报出一揽子交易价格。 【磋商阶段的策略】涉及多种技巧,如除法报价策略,通过将价格分摊到数量或使用时间上,让买方感觉价格更合理。加法报价策略则是在总价基础上逐步...

    [精选]建造合同收入与费用的核算讲义.pptx

    - 合并条件包括:一揽子交易签订、合同密切相关、同时或依次履行。 3. **合同结果的确定性**: - 固定造价合同结果可靠估计需满足四个条件,包括总收入可靠计量、经济利益可流入、完工进度和成本可确定、实际成本...

    2017年4月高等教育自学考试国际商务谈判真题.docx

    15. 交易方式偏好:美国人倾向于全盘考虑,寻求整体平衡的“一揽子交易”。 16. 谈判风格:在商业交往中,阿拉伯人可能更倾向于使用“IBM”(I'll Be Back,我会回来)的谈判策略,意味着他们会暂时退出谈判,但会...

    企业会计准则建造合同.doc

    - 对于一组密切相关的合同,若满足一揽子交易、共同履行等条件,应合并为一个合同。 3. **合同收入**: - 包括合同初始收入和因变更、索赔、奖励产生的额外收入。 - 收入以收到或预期收到的工程价款计量。 - ...

    [精选]建造合同核算讲义liydge.pptx

    相反,若一组合同构成整体工程的一部分,且满足一揽子交易、密切关联和同步履行的条件,应合并为一个合同。 二、合同收入 合同收入主要包括合同初始收入、合同变更收入、索赔收入和奖励款收入。这些收入的确认需要...

    2024最新版-企业会计准则第14号-收入

    - 基于同一商业目的而订立并构成一揽子交易; - 一份合同的对价金额取决于其他合同的定价或履行情况; - 承诺的商品构成本准则规定的单项履约义务。 2. **合同变更**:合同变更包括增加商品及合同价款的情况。...

    350句精选商务英语

    - *含义*: 我想要一个包含机票和酒店费用的一揽子交易。 - *应用场景*: 在预订商务旅行时,向旅行社或在线平台提出此需求。 2. **升舱至头等舱** - *表达*: I’d like to change this ticket to first class. -...

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

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

Global site tag (gtag.js) - Google Analytics