Java 在子类中使用super()并相应地更改“contains”方法
我已经更改了类单元格的构造函数,并使用super将其链接到父类矩形。然而,我曾经有一个网格从这个和主方法,但不再。当程序运行时,如何更改contains方法以获取网格?矩形类已经有x和y字段。 为什么要扩展这个类并在子类中添加这些字段? 子类中的x和y隐藏了超类中的哪一个 例如:Java 在子类中使用super()并相应地更改“contains”方法,java,inheritance,Java,Inheritance,我已经更改了类单元格的构造函数,并使用super将其链接到父类矩形。然而,我曾经有一个网格从这个和主方法,但不再。当程序运行时,如何更改contains方法以获取网格?矩形类已经有x和y字段。 为什么要扩展这个类并在子类中添加这些字段? 子类中的x和y隐藏了超类中的哪一个 例如: import java.awt.*; import java.awt.Rectangle; public class Cell extends Rectangle{ int x; int y;
import java.awt.*;
import java.awt.Rectangle;
public class Cell extends Rectangle{
int x;
int y;
public Cell(int x, int y) {
super(x,y);
}
public void paint(Graphics g, Boolean highlighted) {
if (highlighted) {
g.setColor(Color.LIGHT_GRAY);
g.fillRect(x, y, 35, 35);
}
g.setColor(Color.BLACK);
g.drawRect(x, y, 35, 35);
}
public boolean contains(Point target){
if (target == null)
return false;
return target.x > x && target.x < x + 35 && target.y > y && target.y < y +35;
}
}
您设置了超级类的x和y
在这里:
public Cell(int x, int y) {
super(x,y);
}
x和y指的是等于0的子类字段,因为这些字段在构造函数中没有值
删除它们并使用超级类中的哪一个。阅读完所有这些之后,我仍然不知道您的问题到底是什么。请提供实际的预期结果当我的代码运行时,我需要使用矩形的contains方法来实现类似网格的结构,但我不太确定如何更改当前的contains方法来实现。
public boolean contains(Point target){
if (target == null)
return false;
return target.x > x && target.x < x + 35 && target.y > y && target.y < y +35;
}