Pfeffer 2017-08-10 01:05 采纳率: 50%
浏览 1168
已采纳

继承中的置换原则 java核心技术卷一

Manager是boss的子类

 Manager boss = new Manager(...);
 Employee[] staff = new Employee[3];
 staff[0] = boss;

在这个例子中,变量 staff[0] 和 boss 引用同一个对象,为什么都不可以调用Manager中的方法呢?
书上说编码器将staff[0]看成Employee 对象,表示不理解

  • 写回答

7条回答 默认 最新

  • SonOfWind0311 2017-08-10 01:53
    关注

    这是服务提供者和使用者之间的契约。
    举个不那么恰当的例子,A厂卖水泥,钢筋,A厂和B厂签订合同说,A卖水泥给B。
    虽然A实际上还可以卖钢筋,但按照合同约定B只能跟A要水泥。
    A厂就是那个对象,能力可以无限强,合同就是对象声明的类型,限定了对外暴露的能力,使用者(B厂)只能按照合同约定(对象声明)来使用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器