什么是超类中的实例变量,以及如何在子类中更改它们的值

时间:2014-04-03 17:17:11

标签: java inheritance polymorphism

我是java的新手,请解释一下,超类中实例变量的用法是什么,因为我们不能像子方法那样覆盖它们。我们如何在子类中更改超类的实例变量的值,还请解释你是如何做到这一点的!!!!!! 。如果我们只是改变了它的值,那么在使用多态时,超类中的值将返回,而不是什么,我们在子类中更改了它

3 个答案:

答案 0 :(得分:1)

无法覆盖变量。如果在子类中声明具有相同名称的变量,则它们只是不同的变量。访问旧变量的超类中的那些方法仍然继续读取和写入该变量,并且子类中的方法访问新变量。要从子类访问旧变量,可以使用super.variableName构造。

答案 1 :(得分:1)

超类中实例变量的重要性在于它们将被该超类的所有子类继承,从而减少代码冗余。要更改set的值,超类中私有实例变量的值使用子类构造函数中的super关键字。要在实例化后更改实例变量的值,请使用超类中定义的mutator(setter)方法。按照惯例,mutator方法将命名为setVariable()。

答案 2 :(得分:0)

只能在子类中修改protectedpublic和默认(不带修饰符)变量。您无权访问子类中的private变量。

要修改变量,您只需更改其值,就像在超类中一样。但是你不能覆盖像方法这样的变量,因为Java根本不支持它。你所能做的只是改变他们的价值观。