サイズ: 2040
コメント:
|
サイズ: 2226
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 62: | 行 62: |
親クラスの型をもつ変数へ、サブクラスのインスタンスを代入することはできます。 | '''親クラスの型をもつ変数へ、サブクラスのインスタンスを代入することはできます。''' |
行 64: | 行 64: |
この2行をmainメソッドに記述して実行してみると | 次の2行をmainメソッドに記述して実行してみると |
行 73: | 行 73: |
=== オブジェクトをつなぐ === CardクラスはChainクラスを継承して作成したので、 Chainクラスのときと同様につなぐことができます。 . {{attachment:card3.png}} |
|
行 84: | 行 89: |
. {{attachment:card3.png}} |
継承の例
前回までに作成した Chainクラス を継承して Cardクラス を作ります。
Cardクラスのインスタンスは3つの変数(属性)を持ちます。
コンストラクタとshowメソッドを記述するとこのようになります。
- 1行目にextends...があることに注意
コンストラクタとshowメソッドはこのように使えます。
代入
同じ型の変数にそのクラスのインスタンスを代入することができました。
このとき変数の値は、インスタンスのアドレス(参照)になります。
Card a = new Card(); Chain c = new Chain();
どんなインスタンスでも代入されるときはアドレスだとすると、 型の異なる変数への代入は可能でしょうか?
Card a = new Chain(); Chain c = new Card();
1番目はエラー、2番目は可能です。
親クラスの型をもつ変数へ、サブクラスのインスタンスを代入することはできます。
次の2行をmainメソッドに記述して実行してみると
Chain c = new Card(); System.out.println(c);
このようになります。
変数はChain型ですが、代入されているインスタンスはCard型です。
オブジェクトをつなぐ
CardクラスはChainクラスを継承して作成したので、 Chainクラスのときと同様につなぐことができます。