Java 在子类中使用super()并相应地更改“contains”方法

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;

我已经更改了类单元格的构造函数,并使用super将其链接到父类矩形。然而,我曾经有一个网格从这个和主方法,但不再。当程序运行时,如何更改contains方法以获取网格?

矩形类已经有x和y字段。 为什么要扩展这个类并在子类中添加这些字段? 子类中的x和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;
}