Android/Java:多个相似的 classes 需要一个超级 class,不知道从哪里开始
Android/Java: Multiple similar classes needing a super class, not sure where to start
假设我有 2 个相似的 classes:
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";
}
}
在我的应用程序中,我需要一个全局变量,这样我就可以在任何地方动态生成一个全局范围的香蕉或苹果。 捕获的是,我不知道生成的是哪个,可能是苹果,也可能是香蕉。
我猜测我需要一个超级class,也许Fruit.java,并实例化一个名为fruit的全局变量。当我调用 fruit.getFruitName 和 fruit.getFruitColor 时,我希望返回一个苹果或香蕉,以随机生成的为准。我真的不知道如何给所有这些人一个 parent class.
我的应用示例
public class main extends AppCompatActivity {
Fruit fruit;
...
public void randomFruit() {
fruit = new Fruit();
}
public void sometimeLater() {
if (fruit.getFruitName == "apple"){
//
}
}
}
你可以使用接口
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();
代替超级class,您可以使用接口来定义Fruit
:
界面水果{
public 字符串 getName();
public 字符串 getColor();
}
public class Apple implements Fruit {
public string getName() { return "Apple"; }
public string getColor() { return "Red"; }
}
public class Banana implements Fruit {
public string getName() { return "Banana"; }
public string getColor() { return "Yellow"; }
}
然后您可以创建一个工厂来随机生成 Fruit
:
public static class FruitFarm {
public static Fruit pick {
return Math.random() > .5 ? new Apple() : new Banana();
}
}
完成后,您只需调用:
Fruit = FruitFarm.pick();
获取随机水果(然后调用方法来确定您收到的是哪一个)。
假设我有 2 个相似的 classes:
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";
}
}
在我的应用程序中,我需要一个全局变量,这样我就可以在任何地方动态生成一个全局范围的香蕉或苹果。 捕获的是,我不知道生成的是哪个,可能是苹果,也可能是香蕉。
我猜测我需要一个超级class,也许Fruit.java,并实例化一个名为fruit的全局变量。当我调用 fruit.getFruitName 和 fruit.getFruitColor 时,我希望返回一个苹果或香蕉,以随机生成的为准。我真的不知道如何给所有这些人一个 parent class.
我的应用示例
public class main extends AppCompatActivity {
Fruit fruit;
...
public void randomFruit() {
fruit = new Fruit();
}
public void sometimeLater() {
if (fruit.getFruitName == "apple"){
//
}
}
}
你可以使用接口
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();
代替超级class,您可以使用接口来定义Fruit
:
界面水果{ public 字符串 getName(); public 字符串 getColor(); }
public class Apple implements Fruit {
public string getName() { return "Apple"; }
public string getColor() { return "Red"; }
}
public class Banana implements Fruit {
public string getName() { return "Banana"; }
public string getColor() { return "Yellow"; }
}
然后您可以创建一个工厂来随机生成 Fruit
:
public static class FruitFarm {
public static Fruit pick {
return Math.random() > .5 ? new Apple() : new Banana();
}
}
完成后,您只需调用:
Fruit = FruitFarm.pick();
获取随机水果(然后调用方法来确定您收到的是哪一个)。