黑马程序员技术交流社区

标题: this和super? [打印本页]

作者: java234    时间: 2016-8-27 17:09
标题: this和super?
this和super的具体用法,它们的不同点和相同点?
请大神举例说明!
作者: xueAndroid    时间: 2016-8-27 21:05
this:代表当前对象的引用,谁来调用我,我就代表谁.
super:代表当前对象父类的引用.

作者: 细听风语为梧桐    时间: 2016-8-27 22:11
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();              
作者: 小超超    时间: 2016-8-27 22:34
多去看书吧
作者: KKevin    时间: 2016-8-27 22:57
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);
}
}


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

thanks ,so good!
作者: java234    时间: 2016-8-28 23:00
小超超 发表于 2016-8-27 22:34
多去看书吧

...................




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2