java原始问题创建3(java入门篇:轻松理解java)
这是Java原始问题创建2的延续。
第12章(高级继承)
请创建一个名为 “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方法。
给出答案
//問題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防御
package hero;
public abstract class Hero {
public abstract void attack();
public abstract void guard();
}
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防御");
}
}
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防御");
}
}
请原谅我,我不能来参加你的派对。非常抱歉,我很遗憾错过这个机会。
//問題2
package creature;
public class Main {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Goblin g = new Goblin();
g.run();
g.attack();
}
}
//実行結果
ゴブリンは逃げた
ゴブリンは攻撃した
package creature;
public interface Creature {
void run();
}
package creature;
public interface BattleCreature extends Creature {
void attack();
}
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方法。
回答问题
//問題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();
}
}
}
//実行結果
スライムは逃げた
ゴブリンは逃げた
地獄コウモリは逃げた
package monster;
public interface Monster {
void run();
}
package monster;
public class Slime implements Monster {
@Override
public void run() {
// TODO 自動生成されたメソッド・スタブ
System.out.println("スライムは逃げた");
}
}
package monster;
public class Goblin implements Monster {
@Override
public void run() {
// TODO 自動生成されたメソッド・スタブ
System.out.println("ゴブリンは逃げた");
}
}
package monster;
public class DeathBat implements Monster {
@Override
public void run() {
// TODO 自動生成されたメソッド・スタブ
System.out.println("地獄コウモリは逃げた");
}
}
Java原始问题创建1(Java入门篇:清晰易懂的Java)
Java原始问题创建2(Java入门篇:轻松理解Java)
敬请期待下集
Java入門編でスッキリわかるようにJavaオリジナルの問題を作成しました。