创建一个接收多态输入的方法

时间:2014-04-07 04:22:24

标签: java methods syntax-error call polymorphic-associations

我想调用一个名为“center”的特定方法,用于将对象的中心打印为字符串。我希望这个方法接受这些类中的任何对象。对象的中心是前两个int值(x,y)。所有这些类都共享此方法,因为它继承自Circle2类。我在这个类的main方法中调用了这个方法(即center()方法)。我打算创建的方法应该输出(替换main中的println方法)这些对象的中心值(我最终会放在一个ArrayList中,我必须查看其进程,因为我不能回想一下我会采用什么方式来解决这个问题)。对这两种方法的任何见解都会非常有帮助。

简而言之 - 我的意思是在这个类中创建一个方法,它接受在这个main中构造的任何对象(就像它们现在的那样)作为输入,然后输出调用center()方法的结果,它们都是有共同点。

道歉,如果我的解释不完全清楚 - 如果我的意思并不完全明显,我会很乐意尝试进一步明确这个问题。

public class TestPoly2
{
    /**
     * Constructor for objects of class TestPoly2
     */
    public TestPoly2()
    {

    }

    public String showCenter()
    {
        return "This method is supposed to output (replacing the println methods in the main) the values for centres of these objects (which I will eventually place within an ArrayList (whose process I'll have to review, as I can't recall by what means I would go about this) ";
    }

    public static void main(String []args)
    {
        Circle2 one =  new Circle2(5, 10, 4);
        Cylinder2 two = new Cylinder2(8, 7, 4, 12);
        Oval2 three =  new Oval2(3, 4, 9, 14);
        OvalCylinder2 four =  new OvalCylinder2(11, 14, 15, 10, 12);

        System.out.println(one.center());
        System.out.println(two.center());
        System.out.println(three.center());
        System.out.println(four.center());
    }
}

我一直参考的方法(中心())如下:

public String center()
{
     return "center is at (" + x + "," + y + ")";
}

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

public interface Shape {

    public String center();
}

public class Circle2 implements Shape {
    //ur rest of the code here...

    @Override
    public String center() {
      // return statement here.
    }
}

像这样编辑你的方法:

public String showCenter(Shape shape) {
  return shape.center();
}

答案 1 :(得分:0)

这是执行任务的正确方法。

    public static void showCenter(Circle2 object)
    {
        System.out.println(object.center());
    }

对于任何好奇的人,当然。 谢谢你的帮助,伙计们。