詳しくは公式マニュアルをお読みください。
Javaって、こんな風にも書ける、とか、こうとも言う、とか、色々有るので、
以下は雰囲気だけのざっくりとした説明です。
作成中です。ミス有ったら後免。
// Kihon_2.java 2013.05.28 by Ryn
abstract public class Kihon_2 {
protected String name;
protected String type;
protected Boolean open = false;
public Kihon_2(String name) { // コンストラクタ
this.name = name;
}
abstract public void openSesame();
abstract public void closeSesame();
public void infoDoor() {
if( open )
System.out.println(name + "の" + type + "は、開いています");
else
System.out.println(name + "の" + type + "は、閉じています");
}
}
// Hikido_2.java 2013.05.28 by Ryn
public class Hikido_2 extends Kihon_2{
public Hikido_2(String name) { // コンストラクタ
super(name);
type = "引き戸";
}
public void openSesame() { // オーバーライド
if( ! open ){
System.out.println(name + "の" + type + "が、右に動いて開きました");
open = true;
}else
System.out.println(name + "の" + type + "は、既に開いています");
}
public void closeSesame() { // オーバーライド
if( open ){
System.out.println(name + "の" + type + "が、左に動いて閉まりました");
open = false;
}else
System.out.println(name + "の" + type + "は、既に閉じています");
}
}
// Hirakido_2.java 2013.05.28 by Ryn
public class Hirakido_2 extends Kihon_2{
public Hirakido_2(String name) { // コンストラクタ
super(name);
type = "開き戸";
}
public void openSesame() { // オーバーライド
if( ! open ){
System.out.println(name + "の" + type + "が、手前に動いて開きました");
open = true;
}else
System.out.println(name + "の" + type + "は、既に開いています");
}
public void closeSesame() { // オーバーライド
if( open ){
System.out.println(name + "の" + type + "が、向こうに動いて閉まりました");
open = false;
}else
System.out.println(name + "の" + type + "は、既に閉じています");
}
}
import java.util.Scanner;
// Alibaba_2 2013.05.28 by Ryn
public class Alibaba_2 {
public static void main(String[] args) {
Kihon_2 door[] = new Kihon_2[2];
door[0] = new Hirakido_2 ("寝室");
door[1] = new Hikido_2("和室");
Scanner sc = new Scanner(System.in);
int command;
System.out.println("1 = Open Sesame! 2 = Close Sesami! 3 = info 0 = End");
while(( command = sc.nextInt()) != 0 ) {
switch(command){
case 1:
for (int i = 0 ; i < 2 ; i++)
door[i].openSesame();
break;
case 2:
for (int i = 0 ; i < 2 ; i++)
door[i].closeSesame();
break;
case 3:
for (int i = 0 ; i < 2 ; i++)
door[i].infoDoor();
break;
default:
break;
}
}
sc.close();
System.out.println("終了");
}
}