Android/Java:多个类似的类需要一个超级类,不知道从哪里开始

Android/Java:多个类似的类需要一个超级类,不知道从哪里开始,java,android,class,subclass,superclass,Java,Android,Class,Subclass,Superclass,假设我有两个类似的类: Apple.java Banana.java 在我的应用程序中,我需要一个全局变量,这样我就可以在任何地方动态生成全局范围的香蕉或苹果。问题是,我不知道是哪一个产生的,它可能是一个苹果,或者一个香蕉 我猜我需要一个超类,可能是Fruit.java,并实例化一个名为Fruit的全局变量。当我调用fruit.getFruitName和fruit.getFruitColor时,我希望返回一个苹果或香蕉,以随机生成的为准。我真的不知道如何给所有这些家伙上家长课 我的应用程序示例

假设我有两个类似的类:

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();