【14-2. 継承のまとめ】 ・継承サマリー(PDF書類) クラスの設計に慣れてきたら,スーパークラスは以下の様に最初から抽象クラスとして定義し,具体的な処理が決められないメソッドは抽象メソッドとすると良いだろう。 ■例1 RPGゲームの場合 RPGCharacter.java
abstract class RPGCharacter { private int hp, mp, money; private String name; RPGCharacter( int hp, int mp, int money, String name ){ this.hp = hp; this.mp = mp; this.money = money; this.name = name; } abstract void move( double sec ); // sec秒間移動 abstract void fight( RPGCharacter c ); // cへ攻撃 abstract void defence( double damage ); // 受けたダメージ damageを軽減してhpから引く }
abstract class Fig2D { private double x, y; Fig2D( double x, double y ) { this.x = x; this.y = y; } abstract void draw( ); // 自分自身を描写する abstract void move( double dx, double dy ); // dx,dyだけ移動 abstract void rotate( double a ); // a度だけ時計回りに回転 }