public class LinePlanListVO extends PageDefineWebVO{
     //............
}public class PageDefineWebVO{
     //.........
     private Integer totalNumber;
     //.........     public Integer getTotalNumber() {
return totalNumber;
     }     public void setTotalNumber(Integer totalNumber) {
this.totalNumber = totalNumber;
     }
}
我在一个service(处理业务逻辑)中调用了
LinePlanListVO vo = (LinePlanListVO)inData;  //inData是页面传过来的数据
我用vo.setTotalNumber("1")的时候,PageDefineWebVO的对象通过getTotalNumber()方法是取不到值的。
而要this.setTotalNumber("1"),PageDefineWebVO的对象才能取到值,说明this取的是父类的方法,把值存在了父类中,而直接用VO存的话,存在了VO中,造成父类的对象取不到值。在此问下各位大大,this在继承关系中为什么是这样调用的?方法是这样,属性的调用又是怎么样的?

解决方案 »

  1.   

    this指的当前对象,不是调用父类的顺便问下,你在service中this.setTotalNumber("1")不报错?在service中,this应该指的是service这个类吧
      

  2.   

    this的用法:
    1.重载构造函数中,可用this调用已实现的本类构造函数
    2.this指当前对象本身
    3.访问本类的成员变量和成员方法
      

  3.   

    package com.xuz.csdn.worldcup.day22;class Father {
    private int i ; public void setI(int i) {
    this.i = i;
    } public int getI() {
    return i;
    }
    }class Son extends Father {}public class App{
    public static void main(String[] args){
    // Son s = new Son();
    // Father f = new Father();
    // s.setI(1);
    // System.out.println(f.getI());

    Father f2 = new Father();
    f2.setI(2);
    System.out.println(f2.getI());
    }
    }
    因为i是private的?
      

  4.   

    刚理解错了把vo里的get,set跟service方法混淆起来了,两个都是有setTotalNumber方法。
      

  5.   

    this只本类的对象
    调用父类的方法可以用super
      

  6.   

    service继承的PageDefineWebService类的方法里也有setTotalNumber方法
    protected void setTotalNumber(Integer in){
        vo.setTotalNumber(in);
    }
      

  7.   

    嗯因为代码里父子类没重复的方法,都用this来调用的......