Java 为超级/子类中的私有字段设置/获取方法

Java 为超级/子类中的私有字段设置/获取方法,java,subclass,private,superclass,Java,Subclass,Private,Superclass,所以基本上我有一个几何图形的超类,它有私有字段,比如长度和宽度。我有一个矩形的子类,它在构造函数中具有长度和宽度 在子类中,我必须包含一个方法,将矩形的长度和宽度设置为几何图形的私有字段的长度和宽度。我如何做到这一点 谢谢 编辑:例如: public class GeometricFigure{ private double length; private double width; } public class Rectangle extends GeometricFigure{

所以基本上我有一个几何图形的超类,它有私有字段,比如长度和宽度。我有一个矩形的子类,它在构造函数中具有长度和宽度

在子类中,我必须包含一个方法,将矩形的长度和宽度设置为几何图形的私有字段的长度和宽度。我如何做到这一点

谢谢

编辑:例如:

public class GeometricFigure{
private double length;
private double width;
}

public class Rectangle extends GeometricFigure{
     public Rectangle(int length, int width){}
//set and get methods here to set the private fields to the variables in the parameter
}

您可以在超类中创建getter和setter方法,如:

public GeometricFigure(int length, int width)
{
     this.length = length;
     this.width = width;
}

public Rectangle(int length, int width)
{
    super(length, width);
}

您的两个构造函数可能如下所示。

您有几个选项

  • 在超类中提供接受宽度和长度的构造函数。子类将使用它
  • 在接受宽度和长度的超类中提供setter/getter方法,只需在子类中使用它

  • 否则,您无权设置专用字段。(除了反射)

    什么??!!请提供一些代码使用
    super
    关键字。问题解决了吗?还没有。基本上,我需要在子类而不是超类中有解决问题的代码。记住一件事,兄弟,在使用反射之前,你不能直接从类外部访问类的私有成员!我需要使用super()调用或类似的东西吗?如果构造函数在super类中,是的,你需要调用super,如果你使用这些方法,就让它们受到保护,这样你就可以调用它们了。我不应该这样做。我的老师说超类不能有任何方法。然后将它们添加到超类构造函数中。显然,超类中的构造函数应该是空的。@noobforce无法执行您要求的操作,除非您将超类中的属性设置为public或protected.Meh。我会照你说的做,以后再看。谢谢