当前位置: 代码迷 >> Java相关 >> 子类怎么重写父类变量
  详细解决方案

子类怎么重写父类变量

热度:2766   发布时间:2013-02-25 21:49:44.0
子类如何重写父类变量
本来是做c#.net的,对java略知皮毛而已,有个基础问题弄不明白

java子类如何重写父类变量

Java code
class ParentClass {  public String AAA = "111";  public void say(){    System.out.println(AAA);  }}class SubClass {  public String AAA = "777";}class TestClass {  public void main(){    SubClass sub = new SubClass();    sub.say();  }}


大概是这样吧。TestClass里输出的貌似是“111”吧,我希望的是子类能覆盖父类,

子类重写AAA,new子类,输出的是子类重写的内容

------解决方案--------------------------------------------------------
class SubClass extends ParentClass {
public SubClass() {
super.AAA = "777";
}
}
------解决方案--------------------------------------------------------
Java code
class ParentClass{    private String AAA = "111";    public void setAAA(String s){        AAA = s;    }    public void say(){        System.out.println(AAA);    }}class SubClass extends ParentClass {}class TestClass {    public static void main(final String[] args){        SubClass sub = new SubClass();        sub.setAAA("777");        sub.say();    }}
------解决方案--------------------------------------------------------
这个因为是通过父类方法say去访问被覆盖的属性的话不会动态绑定的
------解决方案--------------------------------------------------------
只有方法才有重写一说,变量没有
  相关解决方案