私の Java クラスでは、インターフェース、ポリモーフィズム、継承などについて学んでいます。
私が取り組んでいる宿題は、カードのペアをすべて裏向きにして、一度に 2 枚ずつ裏返してマッチを探す記憶ゲームです。一致する場合は表示されたままになり、一致しない場合はカードが裏返され、さらに 2 枚のカードを選びます。
これまでの私のデザインは次のとおりです。
public interface Hideable
public abstract void hide();
public abstract void show();
public interface Speakable
public abstract String speak();
public interface AnimalCard extends Hideable, Speakable
public abstract boolean equals(Object obj);
public class Animal implements AnimalCard
public void hide() { ... }
public void show() { ... }
public boolean equals(Object obj) { ... }
// What do I do for the speak method since a generic Animal
// can't speak, but I have to provide a definition since the
// Animal class is implementing the interfaces.
public class Puppy extends Animal
// Here is where I need to define the speak method.
public String speak() { ... }
私の質問は上記のコメントにあります。speak() メソッドに関して、これを間違って実装しているように感じます。