0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

アップキャスト/ダウンキャスト

Last updated at Posted at 2019-12-04

初学者ですが、個人的な勉強のため書きました

##アップキャスト

・サブクラスのインスタンスをスーパークラスのオブジェクトに格納することをアップキャストという
・コンパイラは互換性をチェックできればキャストを自動的に行ってくれるので、継承関係であるサブクラスはスーパークラスのすべてのメンバーを保証できるためアップキャストは暗黙的に行われる
・スーパークラスとサブクラスに、同じ名前のフィールド変数やメソッドがある場合には、フィールド変数はスーパークラス、メソッドはサブクラスが優先される

##ダウンキャスト

・アップキャストとは逆に、サブクラスのオブジェクトにスーパークラスのオブジェクトを格納することをダウンキャストという
・スーパークラスはサブクラスのすべてのメンバーを保証できないため、スーパークラスからサブクラスにダウンキャストする場合は明示的にダウンキャストを行う必要がある
・アップキャストされていないオブジェクトをダウンキャストすると、ClassCastExceptionの例外が発生するので、一度アップキャストしてからダウンキャストする必要がある
・instanceof演算子でオブジェクトが指定したクラス型もしくは指定したクラスを継承しているか比較することでダウンキャストできるか判定できる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?