bluefantasy728 2015-08-22 03:04 采纳率: 0%
浏览 4979

JAVA中,继承的类可以修改父类成员变量的值?

class FatherClass{
public int value;
public void info(){
value=100;
System.out.println("FatherClass="+value);
}
}
class ChildClass extends FatherClass{
//public int value;
public void info(){
super.info();
value=200;
System.out.println(super.value);
}
}
class TestInherit{
public static void main(String[] args)
{
ChildClass c=new ChildClass();
c.info();
}
}
想了一下问题这样问比较好,就是说:
ChildClass的第一句话int value,写和不写,结果打印super.value是不一样的。
父类有个成员变量value,子类继承的时候就会拥有一个value的成员变量,那如果子类自己再定义一个和父类同样名称的成员变量value的时候,这样岂不是重复定义了么?
如果子类不定义value,而运行到下面的value=200时,就相当于把父类的value值改成200了,而如果子类自己定义了value,改的就是子类自己的值。
在继承中,JAVA是这样定义的么?书上学习的时候没有提到这点啊!

  • 写回答

7条回答

  • 91program 博客专家认证 2015-08-22 03:12
    关注

    父类有个成员变量value,子类继承的时候就会拥有一个value的成员变量,那如果子类自己再定义一个和父类同样名称的成员变量value的时候,不算是重复!
    子类中默认访问子类的变量,如果要访问父类的,就必须使用关键字:super。
    这是类的基本概念,不是 Java 的概念。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器