`
Melon2012
  • 浏览: 2078 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

继承中的super和this关键字学习

 
阅读更多
class FatherClass {
    public int value;
    public void f() {    //5、FatherClass的f()方法
        value = 100;    //父类对象的value赋值100
        System.out.println("FatherClass.value="+value);    //打印父类对象的value值
    }
}

class ChildClass extends FatherClass {
    public int value;
    public void f() {    //3、ChildClass的f()方法
        super.f();    //4、调用父类FatherClass的f()方法
        value = 200;    //6、对象cc 的value = 200
        System.out.println ("ChildClass.value="+this.value);    //打印cc的value值    
        System.out.println(value);    //打印cc的value值
        System.out.println(super.value);    //打印父类对象的value值
    }
}

public class TestInherit {
    public static void main(String[] args) {    //程序主入口方法
        ChildClass cc = new ChildClass();    //1、创建ChildClass的对象引用cc
        cc.f();    //2、调用ChildClass的f()方法
    }
}

 

上面代码内存分析: 


 

 

总结:

this是当前对象自身的引用;

super是当前对象的父类对象的引用。 

 

补充:构造方法中的super()和this()方法:

 

构造方法中的super(argument_list),表示调用其父类的构造方法。

构造方法中的this(argument_list),表示调用自身类中的其它构造方法。

 

1、子类的构造过程必须调用其父类的构造方法:想像,没有父亲就不可能有儿子。

2、若构造方法中调用super(argument_list),必须写在子类构造方法的第一行;

3、若子类的构造方法中没有显示的调用父类的构造方法,系统默认调用父类无参数的构造方法,若父类没有无参数的构造方法则编译出错。

 

 

 

  • 大小: 32.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics