如何访问和更改在超构造函数中创建的实例变量?

时间:2014-11-12 10:17:39

标签: java super

例如,我有一个名为Lives的子类,它使用超类GLabel`的构造函数:

public Lives(int lives, int xPosition, int yPosition){
    super(lives+"", xPosition, yPosition);
    this.lives = lives;
}

在GLabel中,有一个font-size变量,但字体太小。我想改变这个。我怎么知道变量名在超类中创建的变量是什么?

编辑:我意识到这些方法应该有getter和setter,并且应该记录这些。所以我的问题是关于没有getter和setter以及实例变量是公共的情况。

2 个答案:

答案 0 :(得分:1)

Lives对象中,您只需拨打

即可
super.setFont(font);

setFont()上调用Glabel方法。

如果您的Lives课程未覆盖setFont()方法,您也可以直接致电

setFont(font);

没有super前缀。

答案 1 :(得分:1)

JLabelJContainer的子类。 JContainer提供public method named setFont(),因此您可以从程序中的任何位置调用它,您可以在其中引用标签对象(但Lives'构造函数是一个有效的位置)。

改变超级班级的可能性'属性取决于其可见性(例如受保护的)和可用的访问器方法(例如getName()setName())。

如果属性/访问者被声明为public或protected,您可以直接从子类内部更改它。在默认visibilty的情况下,子类需要与超类在同一个包中来操作相应的属性。