Array
(
[2018-03-27] => Array
(
[0] => 10:00:00
)
[2018-03-28] => Array
(
[0] => 11:00:00
[1] => 12:00:00
)
)
所以为此,它打印出来:
class A { int x = 1; }
class B extends A { }
class C extends B { int x = 2;}
public class classTest {
public static void main(String[] args) {
A w = new A(); System.out.println(w.x);
B u = new B(); System.out.println(u.x);
C v = new C(); System.out.println(v.x);
A [] a = { new A(), new B(), new C()};
for (int i=0; i<3; ++i)
System.out.println(a[i].x);
}
}
为什么属于1
1
2
1
1
1
的变量v
每次运行时会输出不同的变量Class C
?例如,在C v = new C(); System.out.println(v.x);
中输出2
,在最后一个循环中输入:
for (int i=0; i<3; ++i)
System.out.println(a[i].x);
}
会打印出1
吗?为什么运行Class C
的第一个输出不是1
,因为它扩展了它,因此x
将等于2
,但是当x等于{时,它将被覆盖来自1
的{{1}} Class B
运行Class A
?
我正在上大学课程,我们几乎没有涉及这个主题。
谢谢。
答案 0 :(得分:1)
这是由您声明类型A的数组生成的,然后所有对象都是这种类型。类类型A返回1。 也许你应该使用接口或抽象类