HPH:
二つのクラス以下の通り:
class A {}
class B extends A {
int b;
}
次の演算子の優先順位テーブルに基づいて:http://www.cs.bilkent.edu.tr/~guvenir/courses/CS101/op_precedence.html。
両方の演算子()
とは、.
同じ優先順位を持っており、彼らは右(結合性)に左から評価しました。
A a = new B();
assert (B)a.b == 0;
上記のコードはコンパイルおよび括弧演算子が(参照鋳造最初に評価される正常アサートしなければならないa
タイプにしB
、次いでキャスト参照のアクセス)b
の値を返すメンバ変数0
。
なぜ、上記の文はそうではありませんか?