2016年06月01日

平成27年度 技術士第一次試験問題 情報工学部門 V−23

V−23
下記のJavaプログラムにおいて用いられているオブジェクト指向技術の組合せと
して、最も適切なものはどれか。

 public class Goods {
  int price;
  string name;
  public int getPrice() {
   return price;
  }
 }


 public class SaleGoods extends Goods {
  public int getPrice() {
  return (int) (price * 0.5);
  }
 }


 public class Shop {
  public int calculateAmount(Goods[] goods) {
  int amount = 0;
  for (int i = 0; i < goods.length; i++) {
  amount = amount + goods[i].getPrice();
  }
  return amount;
  }
 }

 @ オーバーライド、オーバーロード、ポリモーフィズム
 A オーバーライド、オーバーロード、多重継承
 B オーバーライド、ポリモーフィズム
 C オーバーライド、ポリモーフィズム、多重継承
 D オーバーロード、ポリモーフィズム


【正解】 B
オーバーライドは、親クラスで定義されたメソッドなどを、子クラスで再定義して
上書きすること。
オーバーロードは、同じメソッド名で引数の型や数が違うものを定義すること。
ポリモーフィズムは異なるクラスのメソッドの呼び出し方を共通にする概念。
 犬のクラスに「鳴け」命令すると「ワン」と鳴き、
 猫のクラスに「鳴け」命令すると「ニャン」と鳴くようなイメージ。
多重継承は1つのクラスを複数の親クラスから継承して定義すること。

ポリモーフィズム
goods[i].getPrice() で通常商品(Goods)とセール商品(SaleGoods)の
価格を求めている。

オーバーライド
SaleGoods クラスの getPriceが再定義されている。

EXCELのマクロのご相談なら ファーストマクロ 



posted by ファーストマクロ at 23:28| Comment(0) | H27技術士一次試験(情報工学)
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。