0

我遇到了一些麻烦。此代码不会引发任何编译时错误,但System.out.println不会显示。它应该显示您应该如何为所有四个面着色。我在 for 循环中犯了错误还是与结构有关?

请参见下面的代码:

public interface Colorable {
    // Abstract to be called later
    public abstract String howToColor();

}

public class HowToColour {

    /**
     * @param args
     *            the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }
}

public class TestColorable {
    public static void main(String[] args) {
        Object[] obj1 = { 
            new Square(), 
            new Rectangle(), 
            new Rhombus(),
            new Parallelogram(), 
            new Trapezium() 
        };
        for (int i = 0; i < obj1.length; i++) {
            if (obj1[i] instanceof Colorable) {
                System.out.println(((Colorable) obj1[i]).howToColor());
            } else {
                System.out.println("This shape is not to be colored");

            }
        }
    }
}

class GeometricOgject {

}

// Initial Method to use the interface
class Square extends GeometricOgject implements Colorable {
    @Override
    public String howToColor() {
        return "Square: Color all four sides";
    }
}

// Method to use an interface in an abstract class
abstract class FourSides implements Colorable {

}

class Rectangle extends FourSides {
    @Override
    public String howToColor() {
        return "Rectangle: color all four sides";
    }
}

class Rhombus extends FourSides {
    @Override
    public String howToColor() {
        return "Rhombus: color all four sides";
    }
}

class Parallelogram extends FourSides {
    @Override
    public String howToColor() {
        return "Parallelogram: color all for sides";
    }
}

class Trapezium extends FourSides {
    @Override
    public String howToColor() {
        return "Trapezium: color all four sides";
    }
}
4

1 回答 1

3

如果这一切都在一个文件中,我可以看到与具有主函数的两个类的声明存在潜在冲突。巧合的是,您的主电源之一是空的,这可能是正在执行的主电源。如果它们在不同的文件中,您应该能够在命令行上执行它:

java TestColorable

我认为正在发生的事情相当于:

java HowToColour

执行以下操作,每个都在其自己的文件中:

public class HowToColour  
{  
    //implementation 
}    

public class TestColorable  
{  
   //implementation
}  

javac TestColorable.java  
javac HowToColour.java  

java TestColorable  
   **output will go here**
java HowToColour  
   **no output here**
于 2013-07-18T14:35:25.490 回答