gpt4 book ai didi

java - Java 中需要类变量吗?

转载 作者:行者123 更新时间:2023-12-02 02:43:08 26 4
gpt4 key购买 nike

因此,为了说明目的,我有一个抽象类 Animal,并且每个 Animal 都有一个 numberOfLegs。
Dog 扩展 Animal 并且所有狗的 numberOfLegs 均为 4。
是否可以使 numberOfLegs...

  1. 静态
  2. 必需(扩展 Animal 的所有内容都必须定义 numberOfLegs,或者有一些默认值)
  3. 可从 Animal 访问(这个我不太关心,但如果说 walk() 方法是从 Dog 调用的,Animal 是否可以在无需传递额外值的情况下查看腿的数量?)

抱歉,如果这是一个奇怪的问题,是的,我知道我可以通过其他方式轻松做到这一点,例如将其设为实例变量而不是静态变量,但我只是好奇是否有更好的方法.

最佳答案

静态变量或实例变量都不参与多态性。只需声明一个抽象方法,例如int getNumberOfLegs(),在抽象类中。您的 Dog 类可能是:

class Dog extends Animal {
private static final int NUMBER_OF_LEGS = 4;
public int getNumberOfLegs () {
return NUMBER_OF_LEGS;
}
}

关于java - Java 中需要类变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63235269/

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