【初心者】Java質問・相談スレッド58【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0079デフォルトの名無しさん
NGNGclass A {
public String value = "ABC";
}
class B extends A {
public int value = 12345;
}
class Test {
static public void main(String[] args) {
B b = new B();
printValue(b);
}
static void printValue(A a) {
System.out.println("a == (B) a : " + (a == (B) a));
System.out.println("a.value : " + a.value);
System.out.println("((B) a).value : " + ((B) a).value);
}
}
これをコンパイルして、java Testとやると、
a == (B) a : true
a.value : ABC
((B) a).value : 12345
こうなります。a == (B) a なのに、a.valueと((B) a).valueの結果が違います...。
何故なんでしょうか??
■ このスレッドは過去ログ倉庫に格納されています