开发者社区> 问答> 正文

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是这样定义的么?

展开
收起
蛮大人123 2016-03-18 14:07:04 7403 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

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

    2019-07-17 19:06:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载