1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Javaオリジナル問題作成3(Java入門編:スッキリわかるJava)

Last updated at Posted at 2021-04-21

###Javaオリジナル問題作成2の続きです。

#12章(高度な継承)
■問題1
heroパッケージ作成してください。(以下のすべてのクラスはここに格納)
Heroクラス(抽象クラス)を作成し、attack(抽象メソッド),guard(抽象メソッド)を作成してください。
Aheroクラス(Heroクラスを継承)を作成し、attack(内容:A攻撃)、guard(内容:A防御)を作成してください。
Bheroクラス(Heroクラスを継承)を作成し、attack(内容:B攻撃)、guard(内容:B防御)を作成してください。
Mainクラスを作成し、Ahero,Bheroのメソッドを表示させてください。

■問題2
creatureパッケージ作成してください。(以下のすべてのクラスはここに格納)
Creatureクラス(インタフェース宣言)を作成し、runメソッドを追加してください。
BattleCreatureクラス(Creatureクラスを継承し、インタフェースを宣言)を作成し、attackメソッド追加してください。
Goblinクラス(BattleCreatureクラスを実装)を作成し、runメソッド(内容:ゴブリンは逃げた)、attackメソッド(内容:ゴブリンは攻撃した)をオーバーライドさせてください。
Mainクラス作成し、run,attackメソッドを表示させてください。

解答

Main.java
//問題1
package hero;

public class Main {

        public static void main(String[] args) {
                // TODO 自動生成されたメソッド・スタブ
                Ahero a = new Ahero();
                a.attack();
                a.guard();

                Bhero b = new Bhero();
                b.attack();
                b.guard();
        }
}



//実行結果
A攻撃
A防御
B攻撃
B防御


Hero.java
package hero;

public abstract class Hero {
        public abstract void attack();

        public abstract void guard();
}

Ahero.java
package hero;

public class Ahero extends Hero {

        @Override
        public void attack() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("A攻撃");
        }

        @Override
        public void guard() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("A防御");

        }

}


Bhero.java
package hero;

public class Bhero extends Hero {

        @Override
        public void attack() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("B攻撃");
        }

        @Override
        public void guard() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("B防御");
        }

}



Main.java
//問題2
package creature;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Goblin g = new Goblin();
		g.run();
		g.attack();
	}

}



//実行結果
ゴブリンは逃げた
ゴブリンは攻撃した


Creature.java
package creature;

public interface Creature {

        void run();
}


BattleCreature.java
package creature;

public interface BattleCreature extends Creature {
        void attack();
}
Goblin.java
package creature;

public class Goblin implements BattleCreature{

        @Override
        public void run() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("ゴブリンは逃げた");
        }

        @Override
        public void attack() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("ゴブリンは攻撃した");
        }

}

#13章(多態性)
■問題1
monsterパッケージ作成(以下のすべてのクラスはここに格納)
Monsterクラス(インターフェイスを宣言し)作成し、runメソッド(抽象メソッド)を追加してください。
Slimeクラス(Monsterクラスを実装)作成し、runメソッド(内容:スライムは逃げた)を追加してください。
Goblinクラス(Monsterクラスを実装)作成し、runメソッド(内容:ゴブリンは逃げた)を追加してください。
DeathBatクラス(Monsterクラスを実装)作成し、runメソッド(内容:地獄コウモリは逃げた)を追加してください。

Mainクラスを作成し、runメソッド一行で各内容を呼び出してください。

ヒント
・Monster配列作成(要素3つ)
・要素に各インスタンス挿入。
・拡張for文でrunメソッド呼び出す。

解答

Main.java
//問題1
package monster;

public class Main {

        public static void main(String[] args) {
                // TODO 自動生成されたメソッド・スタブ
                Monster[] monsters = new Monster[3];
                monsters[0] = new Slime();
                monsters[1] = new Goblin();
                monsters[2] = new DeathBat();

                for (Monster mo : monsters) {
                        mo.run();
                }
        }

}



//実行結果
スライムは逃げた
ゴブリンは逃げた
地獄コウモリは逃げた
Monster.java
package monster;

public interface Monster {
         void run();
}
Slime.java
package monster;

public class Slime implements Monster {

        @Override
        public void run() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("スライムは逃げた");
        }

}
Goblin.java
package monster;

public class Goblin implements Monster {

        @Override
        public void run() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("ゴブリンは逃げた");

        }

}
DeathBat.java
package monster;

public class DeathBat implements Monster {

        @Override
        public void run() {
                // TODO 自動生成されたメソッド・スタブ
                System.out.println("地獄コウモリは逃げた");

        }

}

Javaオリジナル問題作成1(Java入門編:スッキリわかるJava

Javaオリジナル問題作成2(Java入門編:スッキリわかるJava

###次回に続く

Javaオリジナル問題作成4(Java入門編:スッキリわかるJava

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?