スポンサーリンク

キャスト

クラスのキャスト

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

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

⇒ Super Sub
Sub ○ –
Super – ×
Sub⇒Super – ○

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

ー Super Sub
変数 メソッド 変数 メソッド
Sub⇒Super ○ – ○
Sub⇒Super⇒Sub  ○ ○

なにが便利?

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

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