假设我有 2 个相似的类:
Apple.java
public class Apple {
public string getFruitName(){
return "apple";
}
public string getFruitColor(){
return "red";
}
}
Banana.java
public class Apple {
public string getFruitName(){
return "Banana";
}
public string getFruitColor(){
return "yellow";
}
}
在我的应用程序中,我需要一个全局变量,这样我就可以在任何地方动态生成一个全局范围的香蕉或苹果。 问题是,我不知道生成的是哪个,可能是苹果,也可能是香蕉。
我猜测我需要一个父类(super class),可能是 Fruit.java,并实例化一个名为 fruit 的全局变量。当我调用 fruit.getFruitName 和 fruit.getFruitColor 时,我希望返回一个苹果或香蕉,以随机生成的为准。我真的不知道如何给所有这些人一个父类。
我的应用示例
public class main extends AppCompatActivity {
Fruit fruit;
...
public void randomFruit() {
fruit = new Fruit();
}
public void sometimeLater() {
if (fruit.getFruitName == "apple"){
//
}
}
}
最佳答案
你可以使用一个接口(interface)
interface Fruit {
String getFruitName();
String getFruitColor();
}
然后只为苹果和香蕉实现它
public class Apple implements Fruit {
@Override
public String getFruitName() {
return "apple";
}
@Override
public string getFruitColor() {
return "red";
}
}
然后您可以像这样将香蕉或苹果分配给 Fruit fruit
:
Fruit fruit =
ThreadLocalRandom.current().nextBoolean() ? new Apple() : new Banana();
关于java - Android/Java : Multiple similar classes needing a super class, 不知道从哪里开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39110269/