有点迷糊,感觉this关键字很多时候都没有用啊
子类调用父类属性就有super吗?高手给详细解释一下,嘿嘿

解决方案 »

  1.   

    类成员,可以通过this来引用
    父类成员,可以通过super来引用
      

  2.   

    一般情况下,在类的内部,就算不用this也可以引用到类成员
    但是,如果与变量冲突的时候,用this可以解决这个问题,如
    void f(String str){
      //如果类成员也有一个str
      //那它就需要用this.str,不然就是引用参数的str
    }
      

  3.   

    引用父类的方法,最常见的就是在构造函数中的super();
    这一般用于重载父类方法时会用到
    如果父类中有一个方法f1,子类要重载它,但是,又需要用到父类原先的功能,
    于是,就可以写
    void f1(){
      super.f1()
      //其它逻辑
    }
      

  4.   

    先发个例子看看
    public class Test {
    public static void main(String[] args) {
    A a = new B();
    a.testMethod(100000);
    }
    }
    class A{
    public int i = 10;
    public void testMethod(int i){
    System.out.println(i);
    System.out.println(this.i);
    }
    }
    class B extends A{
    public int i =100;
    public void testMethod(int i){
    System.out.println(i);
    System.out.println(this.i);
    System.out.println(super.i);
    }
    }
      

  5.   

    怎么用可能不好解释!有的时候 不用this 或 super 就无法表达你的意思了!这时候就理解了!比如 父类 和 子类有相同的变量名字  有时就需要用this 或super了,否则可能取不到你想要的变量!
      

  6.   

    你也在看java完全自学手册吗 一起看吧 然后多练习
      

  7.   

    class Plmm
    {
         public String name;     public Plmm(String n){
              this.name = n;     
         }     public String getName(){
              this.name;
         }}
    就从这个简单的class Plmm说起,写好了一个类,不过现在它就是一个以.java结尾的文件当需要一个Plmm的时候你会去 Plmm mm1 = new Plmm("小芳");【在内存中做了个Plmm为模板的对象mm1,这个Plmm的名字叫“小芳”】
    当你mm1.getName()的时候返回“小芳”
    所以此时的this表示的是 名字叫“小芳”的Plmm对象 也就是当前对象而Plmm mm2 = new Plmm("小蝶");这时的this表示名字叫“小蝶”的Plmm对象
    this是个抽象的描述,实例化到具体的对象的时候才有具体的含义
      

  8.   

    this关键字基本上是有成员变量跟构造方法的参数相同时使用如:
    class a{
       private int b;
       public a(int b){
           this.b=b;
       }
    }
    不过,其他的方法也是可以使用this,它的作用主要用来区别成员变量跟它“同名”局部变量;
    至于super通常类是在无参数的构造方法里面自动调用的,也可以自己重写,它是调用父类的构造方法,
    你传几个参数到super里面,它会找相应的参数个数相同的父类构造方法。
      

  9.   

    一般this是指带的这个类自己的对象实例。
    super就是调用父类别。