2 jhon2015 Jhon2015 于 2016.01.19 19:21 提问

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

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

4个回答

caozhy
caozhy   Ds   Rxr 2016.01.19 19:36
已采纳

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

Jhon2015
Jhon2015 还有那个接口和基类的优先级的问题能扩展说一下吗。谢谢啦
2 年多之前 回复
caozhy
caozhy 回复Jhonme: 只是因为你基类有个同名的成员,你掩盖了这个问题。
2 年多之前 回复
caozhy
caozhy 回复Jhonme: 任何情况下,基类都不可能得到派生类定义的成员
2 年多之前 回复
Jhon2015
Jhon2015 这里不是很懂。
2 年多之前 回复
Jhon2015
Jhon2015 为什么会看不到派生类定义的mode了
2 年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.19 19:38

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

Jhon2015
Jhon2015 很好解决我的问题了。谢谢
2 年多之前 回复
Jhon2015
Jhon2015 谢谢~
2 年多之前 回复
qq_28394425
qq_28394425   2016.01.20 14:33

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

Jhon2015
Jhon2015   2016.02.02 14:11

是1212,你说的对

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于泛型和重载的小问题
 首先描述问题,看代码。代码例子:view plaincopy to clipboardprint?import java.util.ArrayList;   public class Test {       public static String test(ArrayList list){           return "";       }       public static Integer test(ArrayList list){           return 1;       } 
一个有趣的小问题
有兄弟三人:大毛,二毛,三毛。有帽子五顶:三顶蓝色,两顶红色。将这五顶帽子随机发给三个 兄弟,三兄弟站成一列,后面的人能看见站在他前面的人,按大毛、二毛、三毛的顺序站好。 帽子分发好后,大毛问三毛:你知道你的帽子是什么颜色的吗? 三毛说:我不知道。
AMDD 一个把大问题分成小问题的优化算法
还没看懂,先记下地址“ 这个博客上有基础知识: http://www.cnblogs.com/breezedeus/p/3496819.html 下面是AMDD http://web.stanford.edu/~boyd/admm.html
java中关于static的一个小问题
       今天突然想到前几天思考的一个问题,就是我们通常在一个war包(或是别的j2ee的程序包)为了提升性能,采用了一些“缓存”来存储一些开销比较大的资源,这样使用它们时就会节省很多new的时间,这些“缓存”我们通常用static型的变量来做,我们知道一个类的多个对象间是共享一个static型变量的,但问题在于这些是在war包中,如果我们是在一个普通的java程序中定义的一个static
急急急!!!关于用循环输出ArrayList中对象问题
我从数据库中搜索出几条记录存在ArrayList中,再用输出时页面重复显示最后一条记录,请问是哪有毛病啊,记录数目与从数据库中取出是一样的, 有点乱,大家帮帮忙吧? 只有页面体部分,我是实在找不到哪有问题,我在action中检索 记录存放在ArrayList,并将它设置为session属性,下面是forword页面 商品搜索结果: 总共有:${fn:length (prod
关于C++/JAVA类中的static成员和对象成员的说法正确的是:
A:static成员变量在对象构造时候生成 B: static成员函数在对象成员函数中无法调用 C: 虚成员函数不可能是static成员函数 D: static成员函数不能访问static成员变量 答案:c   解释,(1)类的static成员变量属于该抽象类,需要在类定义时初始化,不可以在对象的构造函数中初始化。(2) static成员函数在对象成员函数中可以调用,同属于
WORD中的小问题,急!!!!!!!!!
我在编辑WORD文档,到第5页,保存后关闭,下次打开后就看到第一页,我想一打开就看到我编辑的地方.请问高手这个怎么设置才行?小女子在此多谢各位高手的帮忙!下次有我帮的到的地方大家也只管说!  
数组的两个小问题
1.不可以对数组名(指针常量)进行赋值操作2.对数组进行整体赋值只能在最初声明的时候进行。
这道java关于static和类加载初始化的面试题(很经典)
package com.yq; public class TestA { { System.out.println("hello A"); } public TestA(){ System.out.println("TestA constructor!"); } static{ System.out.println("TestA static"); } }
一个小失误引起的大问题
今天中午11:30客户找我,部分数据不显示。查了半天程序,无果,只能查数据库了。发现某个字段为null 查新建字段sql,有默认值。仔细研究发现,原来这样:虽然是指定了默认值,但是没人指定不为null 比方说新建EndHour和EndMinute 这样造成一个问题,就是,新建字段前EndHour和EndMinute有的数据,新建字段EndHour和EndMinute后因为没有指定不能为n