詳しくは公式マニュアルをお読みください。
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("終了"); } }