黑马程序员技术交流社区

标题: this关键字和super关键字的区别? [打印本页]

作者: zoudeyong    时间: 2013-5-31 21:21
标题: this关键字和super关键字的区别?
this关键字和super关键字有什么区别 ?在什么时候用他们 具体一点 谢谢大家
作者: 花开花落总相似    时间: 2013-5-31 21:25
本帖最后由 花开花落总相似 于 2013-5-31 21:27 编辑

  this是调用当前对象  而super 是调用的父类比如说
直接回复写的  格式不对还请见谅
class A{
  private int a;
  A(int a){
   this a = a;
}
}

class B extends A{
private int b;
B(int a, int b){
  super(a);
  this.b = b;
}
}

作者: 廖志强    时间: 2013-5-31 21:45
this():表示调用本类的构造方法
                                super():表示调用父类的构造方法

                                this.成员变量:表示调用本类的成员变量
                                super.成员变量:表示调用父类的成员变量

                                this.成员方法:表示调用本类的成员方法
                                super.成员方法:表示调用父类的成员方法

                        最常见的用法:
                                this用于区分局部变量和成员变量
                                super用于区分子类和父类相同名称的变量
作者: 孙宁洋    时间: 2013-5-31 22:12
super关键字是用来调用父类中的方法和属性的,当用super调用父类的构造方法时,super()必须放在子类构造方法里面的头一行。不然报错
this关键字是指当前类的属性和方法
作者: msileandroid    时间: 2013-5-31 22:32
this代表它所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
super的使用和this的使用几乎一致。
this代表的是本类对象的引用。
super代表的是父类对象的引用。
this语句 :用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行。
super语句一定定义在子类构造函数的第一行。
作者: 孔雀东南飞    时间: 2013-6-1 09:18
this与super
楼主:
共同点:this 与 super都只能放在构造函数第一行(因此this与super在同一个方法内只能存在一个)。
不同点:1、this代表本类对象的引用,如下:
             this.成员变量,在局部变量与成员变量同名时,在方法中用this表示代表对象的变量。如下红色为同一个,加粗的为同一个。
                   class Person
                             {
                                     int age;
                                     void setAge(int age)
                                     {
                                               this.age = age
                                      }
                             }
                    this.成员方法,代表调用本类的成员方法。
         2、super是放在子类中的,因为super代表子类对父类对象的引用。
             super.成员变量,子类中引用父类中的成员变量
             super.成员方法:子类中引用父类中的成员方法
             super(),父类默认构造方法
             super(“参数”),父类重写的构造方法
作者: 骑上最爱    时间: 2013-6-1 10:40
简单说就是 this代表本类对象的引用,super代表父类对象的引用。如果想在子类中调用,子父类同名的方法时,在方法名前加this就是调用子类的,加super就是调用父类的。
作者: 殇_心。    时间: 2013-6-1 18:09
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
作者: 真真假假    时间: 2013-6-1 18:49
学习了,呵呵




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