// コンピュータ
class Computer {
// CPU名
private String cpu;
// CPU名を返す
public String getCpu() {
return cpu;
}
// CPU名を設定する
public void setCpu(String cpu) {
this.cpu = cpu;
}
}
// デスクトップパソコン
class DesktopPC extends Computer {
// ディスプレイ名
private String displayName;
// ディスプレイ名を返す
public String getDisplayName() {
return displayName;
}
// ディスプレイ名を設定する
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
}
// ノートパソコン
class NotePC extends Computer {
// バッテリー名
private String batteryName;
// バッテリー名を返す
public String getBatteryName() {
return batteryName;
}
// バッテリー名を設定する
public void setBatteryName(String batteryName) {
this.batteryName = batteryName;
}
}
// 共通の型
interface TypeCommon {
// 型名を返す
public String getTypeName();
// 型名を設定
public void setTypeName(String typeName);
}
// A社製ノートブック
class ANotePC extends NotePC implements TypeCommon {
// 型名
private String typeName;
// USB
private boolean usb;
// 型名を返す
public String getTypeName() {
return typeName;
}
// 型名を設定
public void setTypeName(String typeName) {
this.typeName = typeName;
}
// USBの使用状況を返す
public boolean isUsb() {
return usb;
}
// USBの使用状況を設定
public void setUsb(boolean usb) {
this.usb = usb;
}
}
// B社製デスクトップ
class BDesktopPC extends DesktopPC implements TypeCommon {
// 型名
private String typeName;
// SDカード
private boolean sd;
// 型名を返す
public String getTypeName() {
return typeName;
}
// 型名を設定
public void setTypeName(String typeName) {
this.typeName = typeName;
}
// SDカードの利用状況を返す
public boolean isSd() {
return sd;
}
// SDカードの使用状況を設定
public void setSd(boolean sd) {
this.sd = sd;
}
}
public class Sample10_3_1 {
public static void main(String[] args) {
ANotePC aPC = new ANotePC();
BDesktopPC bPC = new BDesktopPC();
// 型名を設定
aPC.setTypeName("A-NPC1020");
bPC.setTypeName("B-PC_typeD_ML");
// 共通の型に各PCを設定
TypeCommon[] typePC = { aPC, bPC };
// 機種名を表示
for (int i = 0; i < typePC.length; i++) {
System.out.println("機種名は" + typePC[i].getTypeName() + "です。");
}
}
}
|