A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵晓波 黑马帝   /  2012-1-3 08:59  /  2977 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵晓波 于 2012-1-3 12:08 编辑

this和super用法的区别?

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

6 个回复

倒序浏览
this 调用本身对象的成员变量和方法,而super是调用父类的的成员变量和方法。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。但凡本类功能内部使用了本类对象,都用this表示。
super的使用和this的使用几乎一致。但super代表的是父类对象的引用。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
this和super可以代指本类方法和父类的方法,当你在本类的方法中想使用本类的其他方法,你就可以使用this.后面跟上你想使用的方法,也可以使用super.方法,使用本类的父类方法,在构造方法中,如果有继承关系,他会在本类的构造方法中,默认调用super()方法。来构造本类信息,如果你想使用别的父类信息,来初始化子类信息,你可以使用super对应父类的构造方法,但是必须是super的构造方法,在子类的构造方法前面。否则会抛异常的

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 詹英鹏 于 2012-1-3 11:13 编辑

this变量使用在一个成员函数的内部,指向当前对

象,当前对象指的是调用当前正在执行方法的那个对象.super变量是直接指向超类的构造函数,用来引用超

类中的变量和方法.两者的使用方法:

下面我写的this和super例子你参考一下
1、this
public class People{
public String name;
public char gender;
public int age;
public double height;
public double weight;
public People(String name,char gender,int age,double height,double weight){
      this.name=name;
      this.gender=gender;
      this.age=age;
      this.height=height;
      this.weight=weight;}
}
2.super
Student(String name,int age,String school){
super(name,age);
this.school=school;}

其中,super(name,age);语句表示调用父类的构造方法,并传递相应的参数。这样的用法一般在子类构造

方法的参数多于父类构造方法的参数时使用,其目的是简化构造方法的语句体。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
super()是调父类的方法,必须写在方法体第一行,this是自身调用。概念不一样,如果有错误请指出

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
谢谢大家,以后有不会还请教你们。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马