Jhon2015
oneMoreJohn
采纳率100%
2016-01-19 11:21 阅读 1.3k
已采纳

【急】关于static的一个小问题

一道题目,见图。为什么答案是1211,而不是1231.是接口中的static 和final修饰符怎么
样的过程道理得出的结果能说说吗图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2016-01-19 11:36

    这个问题的关键在于理解你的类中有两个mode,一个是从接口继承来的,一个是从基类继承来的,同名的字段,到底输出的是哪一个。
    java采取的是就近原则,如果本类型有,基类型也有,那么选择本类型的。继承的基类的方法,看不到派生类定义的mode,所以用的还是接口的mode,所以是1不是3。
    最后一个,接口的优先级高于基类。

    点赞 1 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2016-01-19 11:38

    这个很static没有关系,主要是因为P3的play方法是继承于父类的,所以父类方法访问的MODE变量也是父类的1,所以结果就是这个了。通常父类很子类有相同名称的成员变量时,各自方法中访问的变量是各自的。

    点赞 1 评论 复制链接分享
  • qq_28394425 Roc_strong 2016-01-20 06:33

    难道不是1212吗?第四个属性继承了啊

    点赞 评论 复制链接分享
  • Jhon2015 oneMoreJohn 2016-02-02 06:11

    是1212,你说的对

    点赞 评论 复制链接分享

相关推荐