<演習1>の解答例
 
class Note extends Paper
{
  private int page; // ページ数

  public void setPage( int p ){ // ページ数を設定する
    page = p;
  }
  public void show(){ // 表示
    System.out.println(" ページ数 = " + page ); // ページ数を表示
    super.show(); // 用紙サイズを表示
  }
}
class Paper
{
  private String size; // サイズ、"A4","B5"など

  public void setSize( String s ){ // サイズを設定する
    size = new String(s);
  }
  public void show(){ // 表示
    System.out.println(" 用紙サイズ = " + size );
  }
}
class Ensyu1401
{
  public static void main(String[] args)
  {
    // ノートクラスのオブジェクト
    System.out.println("\n- ノート ----");
    Note nt = new Note();
    nt.setSize( "A4" );
    nt.setPage( 80 );
    nt.show();
  }
}

 
 
<演習2>の解答例
 
class Wizard extends Brave
{
  private int mp; // マジックポイント

  public Wizard( String n, int h, int m ){ // コンストラクタ
    super( n, h );
    mp = m;
  }
  public void attack(){
    System.out.println(" 魔法使い" + name + "は呪文を唱えた(残りmp=" + mp + ")");
  }
}
class Brave
{
  protected String name;
  private int hp;

  public Brave( String n, int h ){ //
    name = new String(n);
    hp = h;
  }
  public void attack(){ // 表示
    int dmg = (int)(Math.random()*100);
    System.out.print(" 勇者" + name + "の攻撃 " + dmg + " のダメージ!");
    System.out.println(" (残りhp=" + (hp-dmg) + ")");
  }
}
class Ensyu1402
{
  public static void main(String[] args)
  {
    Brave [] ch = new Brave[5];

    ch[0] = new Brave( "ichiro", 157 );
    ch[1] = new Wizard( "jiro", 298, 120 );
    ch[2] = new Wizard( "saburo", 107, 100 );
    ch[3] = new Brave( "shiro", 353 );
    ch[4] = new Wizard( "goro", 216, 110 );

    for(int i=0;i<ch.length;i++) ch[i].attack();
  }
}

 
 
<演習3>の解答例
 
class Chugaku extends Shogaku
{
  int shakai,eigo; // 得点(社会、英語)

  // 引数は 国語、算数、理科、社会、英語
  public Chugaku(int k, int sa, int r, int sh, int e){
    super(k,sa,r);
    shakai = sh;
    eigo = e;
    goukei = goukei + sh + e; // 3科目+2科目の合計
  }
  public void showTen2(){
    System.out.print(" " + shakai + " " + eigo);
  }
  public String toString(){
    String str = " " + kokugo + " " + sansu + " " + rika
               + " " + shakai + " " + eigo + "  合計 = " + goukei;
    return str;
  }
}
class Shogaku // 小学生クラス
{
  int kokugo,sansu,rika; // 得点(国語、算数、理科)
  int goukei;

  // 引数は 国語、算数、理科
  public Shogaku( int k, int sa, int r ){
    kokugo = k;
    sansu = sa;
    rika = r;
    goukei = k + sa + r; // 3科目の合計
  }
  public void showTen3(){
    System.out.print(" " + kokugo + " " + sansu + " " + rika);
  }
  public String toString(){
    String str = " " + kokugo + " " + sansu + " " + rika + " 合計 = " + goukei;
    return str;
  }
}
class Ensyu1403
{
  public static void main(String[] args)
  {
    // Shogakuクラスのオブジェクト
    System.out.println("\n- 小学生クラス ----");
    Shogaku sho = new Shogaku( 93, 78, 85 );
    //sho.showTen3();
    //System.out.println(" 合計 = " + sho.goukei );
    System.out.println( sho );

    // Chugakuクラスのオブジェクト
    System.out.println("\n- 中学生クラス ----");
    Chugaku chu = new Chugaku( 65, 95, 88, 94, 82 );
    //chu.showTen3();
    //chu.showTen2();
    //System.out.println("  合計 = " + chu.goukei );
    System.out.println( chu );
  }
}

 
 
<演習4>の解答例
 
class LimitedExpress extends Train
{
  int ex_charge; // 特急料金

  // コンストラクタ、引数)車名、運賃、特急料金
  public LimitedExpress( String n, int u, int ec ){
    super( n, u );
    ex_charge = ec;
  }
  public int getRyokin(){ // 運賃 + 特急料金を返す
    return super.getRyokin() + ex_charge;
  }
}
class Train // 普通電車クラス
{
  public String name; // 名前
  private int unchin; // 運賃

  // コンストラクタ、引数)車名、運賃
  public Train( String n, int u ){
    name = new String( n );
    unchin = u;
  }
  public int getRyokin(){ // 運賃を返す
    return unchin;
  }
}
class Ensyu1404
{
  public static void main(String[] args)
  {
    // Trainクラスのオブジェクト
    System.out.println("\n- Trainクラス ----");
    Train fu = new Train( "普通", 4750 );
    System.out.print( " " + fu.name + " " );
    System.out.println( fu.getRyokin() );

    // LimitedExpressクラスのオブジェクト
    System.out.println("\n- LimitedExpressクラス ----");
    LimitedExpress le = new LimitedExpress( "サンダーバード", 4750, 2900 );
    System.out.print( " " + le.name + " " );
    System.out.println( le.getRyokin() );
  }
}

 
 
<演習5>の解答例
 
class F1Car extends RacingCar // F1クラス
{
  public String team; // チーム名

  // コンストラクタ n:番号、g:ガソリン、c:コース数、t:チーム名
  public F1Car( int n, double g, int c, String t ){
    super( n, g, c );
    team = new String( t );
  }
  public void show(){
    super.show(); // スーパークラスの表示を呼び出す
    System.out.println(" チーム = " + team);
  }
}
class RacingCar extends Car // RacingCarクラス
{
  public int course; // コース数

  // コンストラクタ n:番号、g:ガソリン、c:コース数
  public RacingCar( int n, double g, int c ){
    super( n, g );
    course = c;
  }
  public void show(){
    super.show(); // スーパークラスの表示を呼び出す
    System.out.println(" コース = " + course);
  }
}
class Car // Carクラス
{
  public int num; // ナンバー
  public double gas; // ガソリン

  // コンストラクタ n:番号、g:ガソリン
  public Car( int n, double g ){
    num = n;
    gas = g;
  }
  public void show(){
    System.out.println(" ナンバー = " + num + " ガソリン = " + gas);
  }
}
class Ensyu1405
{
  public static void main(String[] args)
  {
    // Carクラスのオブジェクト
    System.out.println("\n- Carクラス ----");
    Car c = new Car( 1234, 55.0 );
    c.show();

    // RacingCarクラスのオブジェクト
    System.out.println("\n- RacingCarクラス ----");
    RacingCar rc = new RacingCar( 5678, 85.0, 8 );
    rc.show();

    // F1クラスのオブジェクト
    System.out.println("\n- F1クラス ----");
    F1Car f1 = new F1Car( 9999, 110.0, 15, "フェラーリ" );
    f1.show();
  }
}