java - 我如何在其中使用数组?

标签 java arrays

对于我的作业,我应该“为您的父类和子类编写代码,并编写一个驱动程序类来演示应用程序的方法和变量。在您的驱动程序中,包括一个数组存储所有子类的对象。使用循环打印每个对象的相关值和/或使用其方法。”

嗯,这就是我到目前为止所做的:

狗(抽象类):

    package objectsofaffection;

    public abstract class Dog extends Test {

        static String name;
        static String age;
        static String coatColor;

        public abstract void name();
        public abstract void age();
        public abstract void coatColor();
}

狗贝蒂:

package objectsofaffection;

public class DogBetty extends Dog {

    public DogBetty() {
        name();
        age();
        coatColor();
    }


    @Override
    public void name() {
        System.out.println("Dog Name: Betty");
        }
    @Override
    public void age() {
        System.out.println("Age: 11 years");
        }
    @Override
    public void coatColor() {
        System.out.println("Coat Color: Brown");

        }
    }

狗卡尔:

package objectsofaffection;

public class DogCarl extends Dog {

    public DogCarl() {
        name();
        age();
        coatColor();
    }


    @Override
    public void name() {
        System.out.println("Dog Name: Carl");
        }

    public void age() {
        System.out.println("Age: 2 months");
        }

    public void coatColor() {
        System.out.println("Coat Color: Black");

        }
    }

狗乔:

package objectsofaffection;

public class DogJoe extends Dog {

    public DogJoe() {
        name();
        age();
        coatColor();
    }


    @Override
    public void name() {
        System.out.println("Dog Name: Joe");
        }

    public void age() {
        System.out.println("Age: 6 years");
        }

    public void coatColor() {
        System.out.println("Coat Color: Spotted Black and White");

        }
    }

狗莫莉:

package objectsofaffection;

public class DogMollie extends Dog {

    public DogMollie() {
        name();
        age();
        coatColor();
    }


    @Override
    public void name() {
        System.out.println("Dog Name: Mollie");
        }

    public void age() {
        System.out.println("Age: 3 years");
        }

    public void coatColor() {
        System.out.println("Coat Color: Black, Brown, White mix.");

        }
    }

测试(驱动程序类):

package objectsofaffection;

public class Test {

    @SuppressWarnings("unused")
    public static void main(String[] args) {

        DogBetty betty = new DogBetty();
            System.out.println(); //space

        DogJoe joe = new DogJoe();
            System.out.println(); //space

        DogCarl carl = new DogCarl();
            System.out.println(); //space

        DogMollie mollie = new DogMollie();
            System.out.println(); //space

    } 
} 

那么,我怎么可能使用数组呢?请帮忙。

最佳答案

除了 Salman 接受的答案之外,我必须指出您的父类声明了 3 个静态变量。静态变量在类的所有实例之间共享,因此当设置这些变量时,狗的每个实例都将具有相同的名称、年龄和颜色。幸运的是,这些变量永远不会被设置,所以它们只是说明您对它们的目的和“静态”的使用感到困惑。另请注意,您 child 的每个类(class)都做同样的事情。这是一个提示,您应该将该逻辑移至父类中。每个子类构造函数都应该调用 super(),而父类(super class)构造函数将调用这 3 个相同的方法。

关于java - 我如何在其中使用数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48471636/

相关文章:

java - 无法理解 logcat 错误

java - Java 的 System.out.print() 会一直缓冲到 println() 吗?

java - Android:双击会在不应该缩小位图图像的情况下缩小......?

java - Android- 如何更新另一个 Activity 的数据。在你正在工作的那个之外

c++ - 使用正确的位大小在 C++ 中将十进制转换为二进制

c++ - 将 char 数组转换为 uint8_t

来自 Xml 数据的 Java 应用程序内存储

arrays - Ruby - 如何删除哈希数组中的重复项?

arrays - 如何识别 MATLAB 数组中的断点?

java - 迭代前缀和的结果