我是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) {
}
}
答案 0 :(得分:1)
其他人提到你不应该使用继承。我完全同意。但我发现Effective Java在这方面的问题上是一个很好的参考,我认为它值得自己回答。有关更深入的讨论,请参阅Effective Java Item 16: Favor composition over inheritance。
答案 1 :(得分:0)
您不应仅仅因为extends Point
类提及Rectangle
而使用Points
。 extends
关键字用于声明 is-a 关系。问你自己是一个矩形点吗?
如果您试图说“此类将使用 Point-class”,您可能只需import
Point
类。
(您可以通过删除extends Point
来解决错误。)