前提・実現したいこと
抽象クラスのAttackerクラスを継承してMonterクラスを作りたいです。
発生している問題・エラーメッセージ
Monster.java:1: エラー: Monsterはabstractでなく、Attacker内のabstractメソッドattack(Attacker)をオーバーライドしません public class Monster extends Attacker{ ^ エラー1個
該当のソースコード
java
1//攻撃的な生命体を表す抽象クラス 2public abstract class Attacker extends Creature { 3 4 //フィールド 5 public int attack; //攻撃力 6 7 //引数なしコンストラクタ 8 public Attacker(){ 9 super(); //自動でsuper()が呼ばれる super() = Creature() 10 } 11 12 //引数ありコンストラクタ 13 public Attacker(int attack) { 14 //super(); //自動でsuper()が呼ばれる 15 setAttack(attack); 16 } 17 18 public Attacker(String name, int life, int attack) { 19 20 //スーパークラスのコンストラクタを呼び出す 21 super(name, life); 22 setAttack(attack); 23 } 24 25 //抽象メソッド 26 public abstract void attack(Attacker enemy); //汎用性が高くなる 27 28 //アクセッサー 29 30 //attackのセッター、ゲッター 31 public void setAttack(int attack) { 32 33 this.attack = attack; 34 } 35 36 public int getAttack() { 37 38 return attack; 39 } 40}
java
1public class Monster extends Attacker{ 2 3// private String name = ""; 4// private double life = 0.0; 5 6 double life = (double)(Math.random() * 1); 7 public void attack(double life){ 8 } 9}
試したこと
オーバーライドできない意味がわかりません
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー