如何从包含两个初始对象作为参数的扩展类创建对象的构造函数?

时间:2012-01-03 08:21:55

标签: java object extends

我是Java的新手,我有一个简单的问题:

我有以下课程点:

public class Point {

    private int yAxis;
    private int xAxis;

    public Point (int x, int y)
    {
        xAxis = x;
        yAxis = y;
    }
}

我创建了一个扩展类Point的新类。我想让我的新类作为参数获取两个对象Point。我编写了以下代码,但收到错误“隐式超级构造函数MyPoint()未定义。必须显式调用另一个构造函数”。我该如何解决这个问题?

提前致谢!

public class Rectangle extends Point {

    private int length1;
    private int height1;

    public Rectangle(int x, int y, int l, int h) {
        super(x, y);
        l = length1;
        h = height1;
    }

    public Rectangle(Point topLeft, Point bottonRight) {


    }
}

2 个答案:

答案 0 :(得分:1)

其他人提到你不应该使用继承。我完全同意。但我发现Effective Java在这方面的问题上是一个很好的参考,我认为它值得自己回答。有关更深入的讨论,请参阅Effective Java Item 16: Favor composition over inheritance

答案 1 :(得分:0)

您不应仅仅因为extends Point类提及Rectangle而使用Pointsextends关键字用于声明 is-a 关系。问你自己是一个矩形点吗?

如果您试图说“此类将使用 Point-class”,您可能只需import Point类。

(您可以通过删除extends Point来解决错误。)