Java 多态性与 ArrayList

标签 java arraylist polymorphism subclass superclass

我在 eclipse 中编写代码,我有一个名为 platform 的类和像 redplatform、blueplatform 这样的子类。我想创建一个可以存储 blueplatform 和 redplatform 的数组列表,到目前为止我已经做到了。

ArrayList<Platform> p = new ArrayList<Platform>();
private void createPlatform() {
    switch (platform) {
    case 0:
        p.add(new GreenPlatform(x, y));
    case 1:
        p.add(new RedPlatform(x, y));
    case 2:
        p.add(new BluePlatform(x, y));
    case 3:
        p.add(new MagentaPlatform(x, y));
    case 4:
        p.add(new GrayPlatform(x, y));
    }
repaint();
@Override
public void paintComponent(Graphics g) {
    // TODO Auto-generated method stub
    super.paintComponent(g);
    for (int i = 0; i < p.size(); i++) {
        p.get(i).paint(g);
    }
}

在每个类中,它都有一个 Paint 方法,可以将颜色设置为不同的颜色并进行绘制 但现在它们都是灰色的。这令人沮丧。

最佳答案

switch (platform) {
case 0:
    p.add(new GreenPlatform(x, y));
    break;
case 1:
    p.add(new RedPlatform(x, y));
    break;
case 2:
    p.add(new BluePlatform(x, y));
    break;
case 3:
    p.add(new MagentaPlatform(x, y));
    break;
case 4:
    p.add(new GrayPlatform(x, y));
}

关于Java 多态性与 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27319139/

相关文章:

java - 没有 GC 历史记录的 OutOfMemory 线程转储

java - LLVM vmkit java注释

java - getActivity().runOnUiThread(new Runnable(){ 上的 NullPointerException

java - 数组列表。在一个索引中连接字符串值

java - 输入存储在 Arraylist 或 String 数组中? (新程序员)Java

c++ - 大多数派生类中的虚拟成员函数?

Java多态-如何判断是否调用父类(super class)方法和子类方法以及父类(super class)变量还是子类变量?

java - Spring MVC 处理表单填充和提交

java - 如果有多个结果,数组的最低值

c++ - 用继承和多态重载 '<<'?