37. 「指」と「肘」の共通処理を親クラスへ
public abstract class 関節 {
public void 曲げる() {
// 曲げる処理
}
public void 伸ばす() {
// 伸ばす処理
}
}
public class 指 extends 関節 {
// 指の独自フィールド、メソッド
}
public class 肘 extends 関節 {
// 肘の独自フィールド、メソッド
}
50. 「掌」と「ズゴックハンド」に共通のインターフェースを
public interface 手 {
public void 握る();
public void 開く();
}
public class 掌 implements 手 {
// さっきのと同じ
}
public class ズゴックハンド implements 手 {
// さっきのと同じ
}
• インターフェースを導入するとこのようになります。
51. インターフェースを使って、「腕」を改修
public class 腕 {
private 肩 カタ = new 肩();
private 肘 ヒジ = new 肘();
// private 手 テ = new 掌();
private 手 テ = new ズゴックハンド();
ここを切り換えるだけ
public void 物を掴む() {
カタ.回す(90, 0); // 方向は「前:0」「後:1」とします
ヒジ.伸ばす();
テ.握る();
}
public void 物を投げる() {
カタ.回す(270, 1);
カタ.回す(180, 0);
ヒジ.伸ばす();
テ.開く();
}
}