キャスト

クラスのキャスト

数値型のキャストは以前ご紹介しました()。継承関係があるクラスでもキャストが可能です。

具体的には、サブクラス(継承先)からスーパークラス(継承元)は可能。スーパークラスからサブクラスは不可能。ただし、サブクラスからスーパークラスにキャストし、それをサブクラスにキャストする場合は可能です。

Super Sub
Sub
Super ×
Sub⇒Super

スーパークラス、サブクラスに同じ変数、メソッド名が存在している場合は、優先されるルールがあります。サブクラスをスーパークラスにキャストした場合は、変数はスーパークラス、メソッドはサブクラスが優先されます。スーパークラス(サブクラスからキャストしたモノ)からサブクラスにキャストした場合は、サブクラスの変数、メソッドが優先されます。

Super Sub
変数 メソッド 変数 メソッド
Sub⇒Super
Sub⇒Super⇒Sub 

なにが便利?

サブクラスが多くある場合はスーパークラスを配列にし、サブクラスをキャストして格納することがあります。配列化することでデータ処理が行いやすくなるのです。

タイトルとURLをコピーしました