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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© java234 中级黑马   /  2016-8-27 17:09  /  917 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

this和super的具体用法,它们的不同点和相同点?
请大神举例说明!

9 个回复

倒序浏览
this:代表当前对象的引用,谁来调用我,我就代表谁.
super:代表当前对象父类的引用.
回复 使用道具 举报
this的常见用法:1,通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突的问题;
                         2,通过this关键字调用成员方法; 3,可以在一个构造方法中调用其他构造方法;
super常见用法:1, 使用super关键字调用父类的成员变量和成员方法,2,使用super调用父类的构造方法;
           
this和super的区别:this表示当前对象,也就是当前类对象,super表示当前类的父类。

举例:你定义一个新的类:A,这个A继承了类B,也就是说B是A的父类。那么如果A中 有个方法:aa();B中也有个方法: aa();

那么在A 中用this.aa()调用的就是A中定义的方法,而super.aa()调用的就是A的父类B中定义的方法aa();              
回复 使用道具 举报
多去看书吧
回复 使用道具 举报
this代表当前对象的引用,是为了区分本类中同名的成员变量与局部变量     
super表示父类对象的引用
[Java] 纯文本查看 复制代码
class Person {
    String name;
    int age;
public Person(){}
public Person(String name,int age){
   this.name = name;
  this.age = age;
}
}
class Boy extends Person{
   public Boy(){}
public Boy(String name,int age){
    super(name,age);
}
}

回复 使用道具 举报
A:this和super都代表什么 this:代表当前对象的引用,谁来调用我,我就代表谁 super:代表当前对象父类的引用 B:this和super的使用区别 a:调用成员变量 this.成员变量 调用本类的成员变量,也可以调用父类的成员变量 super.成员变量 调用父类的成员变量 b:调用构造方法 this(...)        调用本类的构造方法 super(...)        调用父类的构造方法 c:调用成员方法 this.成员方法 调用本类的成员方法,也可以调用父类的方法 super.成员方法 调用父类的成员方法
回复 使用道具 举报
jiubaK 中级黑马 2016-8-27 23:56:18
7#
注意,super不是父类对象的引用。
如果super是引用的话,你是可以打印输出super的地址值的。
然而,在子类非静态方法中,System.out.println(super);这条语句是报错的!
System.out.println(this);则不会报错
实际上,super指向的是父类内存空间的标识,在用法上我们可以把它当做父类对象的引用,但是不能说它就是父类对象的引用。一定注意,网上很多地方都说是父类对象的引用,不正确。
回复 使用道具 举报
这个还算好理解的
回复 使用道具 举报
细听风语为梧桐 发表于 2016-8-27 22:11
this的常见用法:1,通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突的问题;
   ...

thanks ,so good!
回复 使用道具 举报

...................
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马