gpt4 book ai didi

java - 如何实现一个没有定义所有抽象方法的类?

转载 作者:行者123 更新时间:2023-11-29 03:40:58 24 4
gpt4 key购买 nike

对于我的 Java 类,我们正在学习接口(interface)、多态性、继承等。

我正在做的家庭作业是一个内存游戏,你有成对的牌面朝下,你一次翻开两张来寻找匹配项。如果它们匹配,它们将保持可见,如果它们不匹配,卡片将翻过来,您再选择两张卡片。

目前我的设计如下:

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() 方法方面的实现不正确。

最佳答案

只需将 Animal 类设为抽象即可。
具体类必须实现 speak(),或者本身是抽象

public class abstract Animal implements AnimalCard {
public void hide() { ... }
public void show() { ... }
public boolean equals(Object obj) { ... }

Animal 中为 speak() 声明一个抽象方法没有必要也没有值(value)——该方法由类层次结构隐含。

关于java - 如何实现一个没有定义所有抽象方法的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13186240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com