次の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 += goods[i].getPrice();
}
return amount;
}
}
@ オーバーライド、オーバーロード、ポリモーフィズム
A オーバーライド、オーバーロード、多重継承
B オーバーライド、ポリモーフィズム、多重継承
C オーバーライド、ポリモーフィズム
D オーバーロード、多重継承
C
オーバーライドは、親クラスで定義されたメソッドなどを、子クラスで再定義して上書きすることである。
オーバーロードは、同じメソッド名で引数の型や数が違うものを定義することである。
ポリモーフィズムは、異なるクラスのメソッドの呼び出し方を共通にする概念である。
犬のクラスに「鳴け」命令すると「ワン」と鳴き、
猫のクラスに「鳴け」命令すると「ニャン」と鳴くようなイメージ。
多重継承は、1つのクラスを複数の親クラスから継承して定義することである。
ポリモーフィズム:
goods[i].getPrice() で通常商品 (Goods) とセール商品 (SaleGoods) の価格を求めている。
オーバーライド:
SaleGoods クラスの getPrice が再定義されている。
V−1 | 目次 | V−3 |