Android/Java:多个类似的类需要一个超级类,不知道从哪里开始
假设我有两个类似的类: Apple.java Banana.java 在我的应用程序中,我需要一个全局变量,这样我就可以在任何地方动态生成全局范围的香蕉或苹果。问题是,我不知道是哪一个产生的,它可能是一个苹果,或者一个香蕉 我猜我需要一个超类,可能是Fruit.java,并实例化一个名为Fruit的全局变量。当我调用fruit.getFruitName和fruit.getFruitColor时,我希望返回一个苹果或香蕉,以随机生成的为准。我真的不知道如何给所有这些家伙上家长课 我的应用程序示例Android/Java:多个类似的类需要一个超级类,不知道从哪里开始,java,android,class,subclass,superclass,Java,Android,Class,Subclass,Superclass,假设我有两个类似的类: Apple.java Banana.java 在我的应用程序中,我需要一个全局变量,这样我就可以在任何地方动态生成全局范围的香蕉或苹果。问题是,我不知道是哪一个产生的,它可能是一个苹果,或者一个香蕉 我猜我需要一个超类,可能是Fruit.java,并实例化一个名为Fruit的全局变量。当我调用fruit.getFruitName和fruit.getFruitColor时,我希望返回一个苹果或香蕉,以随机生成的为准。我真的不知道如何给所有这些家伙上家长课 我的应用程序示例
您可以使用一个接口
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 =
ThreadLocalRandom.current().nextBoolean() ? new Apple() : new Banana();
我建议您阅读您可以使用界面
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 =
ThreadLocalRandom.current().nextBoolean() ? new Apple() : new Banana();
我建议您阅读而不是超类,您可以使用接口来定义水果: 接口果实{ 公共字符串getName; 公共字符串getColor; } 然后,您可以创建一个工厂来生成一块随机的水果: 一旦您有了这些,您可以简单地调用:
Fruit = FruitFarm.pick();
要获取您的随机水果,然后调用方法以确定您收到了哪一个。您可以使用接口来定义水果,而不是使用超类: 接口果实{ 公共字符串getName; 公共字符串getColor; } 然后,您可以创建一个工厂来生成一块随机的水果: 一旦您有了这些,您可以简单地调用:
Fruit = FruitFarm.pick();
获取你的随机水果,然后调用这些方法来计算你收到了哪一个。注意:使用.equals。。。方法检查对象相等性,使用==检查基元相等性。iffruit.getFruitName==苹果没有做你认为它做的事情。请注意,Java中没有全局变量或全局作用域。您可以将内容公开,但它们将与类或对象关联。注意:使用.equals。。。方法检查对象相等性,使用==检查基元相等性。iffruit.getFruitName==苹果没有做你认为它做的事情。请注意,Java中没有全局变量或全局作用域。您可以使事物公开,但它们将与类或对象关联。
Fruit = FruitFarm.pick();