不是说生成子类对象会先 生成父类对象吗?怎么不能打印super的地址?public class Test{
public static void main(String[] args){
B obj = new B();
obj.show();
}
}
class A{
int a = 10;
}
class B extends A{
public void show(){
System.out.println(this.a);
System.out.println(super.a);
System.out.println(this);
//System.out.println(super);  为什么这句会报错,super不是指向父类的对象吗?
}
}

解决方案 »

  1.   

    super只是调用父类的方法以及属性,并不能完整代表一个父类对象吧。
      

  2.   

    super只是在子类内部调用父类时的一个标识,不能代表父类的对象
      

  3.   

    this:代表当前对象名。
    super:引用当前对象的直接父类中的成员,如super.属性名,super.成员函数名
      

  4.   

    this是谁调用就指代谁,super并不是指向真正的一个父类对象
      

  5.   

    super只是一个引用。你要测试生成就给父类的构造方法里面加点东西吧。
      

  6.   

    super 指向父类的构造行数里面的属性
    this 指的是本地类 就是你用的当前类
      

  7.   

    this 和super是关键词.super并不是你所理解的父类对象.它们只是调用类的属性和方法."this."是调用本类的属性."this()"是调用本类的构造方法. "super()"父类的的构造方法.."super."是调用父类的属性
      

  8.   

    this:代表当前对象名。 
    super:引用当前对象的直接父类中的成员,如super.属性名,super.成员函数名
      

  9.   

    简单的说:
    super的使用只有两种情况: super()  调用父类没有参数的构造函数
                               super.属性  or  super.方法
    其它都错误