java中super和this

来源:互联网 发布:风险模拟软件 编辑:程序博客网 时间:2024/06/05 15:48
    super代表的是父类、超类,用在继承中的子类中;this代表对象本身,用在本类中。
    super访问的是被子类隐藏的父类的属性或被覆盖的方法,而this访问的是同一类中的成员。
    super调用的是父类中的某一个构造函数,而this调用的是本类中其他的构造函数。
    super和this都需要位于构造器执行体的第一行,否则编译不通过。但是他们两个不能同时存在,因为this要调用其他的构造函数,而其他的构造函数也有super语句,这就形成了冲突,编译不过。
    用this可以调用一个构造器,不可以调用两个。
    如果子类中没有显示调用父类的任何构造器(任何super和this的形式),系统会默认调用父类无参构造,如果父类没有无参构造,那么就会编译出错。
    super调用的父类方法或属性,必须是public或者protect的,否则因为访问权限的问题也会出错。
    this解决变量命名冲突和不确定性的问题,例如参数名和变量名相同的时候,需要使用this来区分。
    直接用this()加上参数就可以调用对应参数的类构造器,用此方式最多可以调用一次其他构造器。
    this最大的作用就是在一个方法中调用同类中的其他方法和属性。
0 0
原创粉丝点击