super(jj); 是调用超类的构造方法Villain(int ii)

解决方案 »

  1.   

    小jj ??呵呵。。public Orc(int jj){super(jj); j = jj;}
    传入jj,方法调用super(jj)
    就是父类的构造方法Villain(int ii)
      

  2.   

    本人理解:
    super其实就是class Villain的一个实例
    你的jj是你的Orc得参数
    super(jj);相当于父类Villain(jj),这时候父类的i的值就是jj得值
    你可以用父类的read()方法来取得显示这个值this相当于一个object,代表当前对象
    举个简单例子可能就明白了
    public class Orc extends Villain 
    {
    private int j;
    public Orc(int jj){super(jj); j = jj;}
    public void change(int x){set(x);}
    public void sample(int cc){
    int j;
    j=cc;
    System.out.println(this.j);  //显示的是你用Orc(int jj)初始化的时候的值 比如是5
    System.out.println(j);  //显示的是你传入的cc的值,比如cc=10
    this.j=j;
    System.out.println(this.j);  //显示的是你重新设定得值 如上情况的话是10
    System.out.println(j);  //j没有设定过还是原来的cc,是10
    }
    }
      

  3.   

    我同意上面老兄的说法 子类的构造函数首先要调用父类的构造函数,这里的jj 不就是你子类的构造函数的参数吗?? 在你创建子类时 :new Orc(参数);jj就来自这个参数
      

  4.   

    子类会NEW时会自动调用其父类的默认构造方法
    如果父类有其他的构造方法,那么在子类的构造方法里 必须显示地调用父类非默认的构造方法。在Villain类中 有public Villain(int ii){i = ii;} 
    所以在子类里必须用 super(jj); 
    如果没有  编译时就会出错
      

  5.   

    1.super就是指它的父类。
    2.class Villain 没有jj呀,
      但是Villain 里有public Villain(int ii){i = ii;}
      和这个匹配。
    3.super是为了方便从子类里显式访问父类的内容的。
      
      

  6.   

    在不指明的情况下,父类默认的构造方法是与类名完全相同,没有返回值的方法。
    在这个例子中,应该是public Villain()
      

  7.   

    实在就是父类中的public Villain(int ii)
    不要迷茫在小jj 上了,它只是个参数而已,和(int ii)是匹配的!OK!
    多看看吧!很easy!!
      

  8.   

    super 是调用父类的参数和方法
      

  9.   

    super关键字是调用super class的构造函数,this可以表示自身类的引用,也可以表示本类其他的构造函数
    比如
    class good{
      public good(int c,int m){
       //....
    }
     public good(int c){
     super(c,20);//调用上面一个构造函数
    super用法是:
    class car{
    public car(int m){
    //
    }
    }
    class Benz extends car{
    public Benz(int c){
     super(m);//调用超类的构造函数
    }
    }
    }