问题描述
解决方案
这个问题的关键在于理解你的类中有两个mode,一个是从接口继承来的,一个是从基类继承来的,同名的字段,到底输出的是哪一个。
java采取的是就近原则,如果本类型有,基类型也有,那么选择本类型的。继承的基类的方法,看不到派生类定义的mode,所以用的还是接口的mode,所以是1不是3。
最后一个,接口的优先级高于基类。
解决方案二:
这个很static没有关系,主要是因为P3的play方法是继承于父类的,所以父类方法访问的MODE变量也是父类的1,所以结果就是这个了。通常父类很子类有相同名称的成员变量时,各自方法中访问的变量是各自的。
解决方案三:
难道不是1212吗?第四个属性继承了啊
解决方案四:
是1212,你说的对
时间: 2024-11-16 16:51:01