メソッドequals
がクラスRectangle
に属していると仮定した場合、object
が矩形であることが既に設定されている場合、object
を矩形としてキャストする必要があるのでしょうか?特定のクラスとして既に識別されているオブジェクトをキャストするのはなぜですか?
public boolean equals(Object object)
{
boolean equal;
if (object != null && this.getClass() ==
object.getClass())
{
Rectangle other = (Rectangle) object;
equal = (this.width == other.width) &&
(this.height == other.height);
}
else
{
equal = false;
}
return equal;
}
あなたが持っている 'if'節には言語構文が関係しないので。人間のようにコードを「読む」ことはありません。 – Kayaman
静的型ob 'object'は' Object'です。 Javaで変数の静的型を変更することはできません。 – Turing85
@ Kayamanはい、 'if'コードはオブジェクトがRectangleの場合にのみ実行されるため、なぜそれをRectangleとしてキャストする必要がありますか?私はそれと何の関係があるのか分かりません。 – yroc