サイズ: 401
コメント:
|
サイズ: 2040
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 4: | 行 4: |
前回までに作成した Chainクラス を継承して Cardクラス を作ります。 . {{attachment:card1.png}} Cardクラスのインスタンスは3つの変数(属性)を持ちます。 . {{attachment:card2.png}} コンストラクタとshowメソッドを記述するとこのようになります。 * 1行目にextends...があることに注意 |
|
行 24: | 行 31: |
} }}} コンストラクタとshowメソッドはこのように使えます。 |
|
行 25: | 行 35: |
{{{#!java | |
行 32: | 行 43: |
} | }}} ---- === 代入 === 同じ型の変数にそのクラスのインスタンスを代入することができました。 |
行 34: | 行 48: |
このとき変数の値は、インスタンスのアドレス(参照)になります。 {{{ Card a = new Card(); Chain c = new Chain(); |
|
行 35: | 行 53: |
どんなインスタンスでも代入されるときはアドレスだとすると、 型の異なる変数への代入は可能でしょうか? {{{ Card a = new Chain(); Chain c = new Card(); }}} 1番目はエラー、2番目は可能です。 親クラスの型をもつ変数へ、サブクラスのインスタンスを代入することはできます。 この2行をmainメソッドに記述して実行してみると {{{ Chain c = new Card(); System.out.println(c); }}} このようになります。 . {{attachment:card4.png}} 変数はChain型ですが、代入されているインスタンスはCard型です。 ---- {{{#!java public static void main(String[] args) { Card a; a = new Card(); a.add(new Card("ハート", 13)); a.add(new Card("ハート", 12)); a.showContent(); } }}} . {{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型です。