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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zoudeyong 中级黑马   /  2013-5-31 21:21  /  2814 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

this关键字和super关键字有什么区别 ?在什么时候用他们 具体一点 谢谢大家

评分

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

查看全部评分

8 个回复

倒序浏览
本帖最后由 花开花落总相似 于 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;
}
}

评分

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

查看全部评分

回复 使用道具 举报
this():表示调用本类的构造方法
                                super():表示调用父类的构造方法

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

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

                        最常见的用法:
                                this用于区分局部变量和成员变量
                                super用于区分子类和父类相同名称的变量

评分

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

查看全部评分

回复 使用道具 举报
super关键字是用来调用父类中的方法和属性的,当用super调用父类的构造方法时,super()必须放在子类构造方法里面的头一行。不然报错
this关键字是指当前类的属性和方法

评分

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

查看全部评分

回复 使用道具 举报
this代表它所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
super的使用和this的使用几乎一致。
this代表的是本类对象的引用。
super代表的是父类对象的引用。
this语句 :用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行。
super语句一定定义在子类构造函数的第一行。

评分

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

查看全部评分

回复 使用道具 举报
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(“参数”),父类重写的构造方法

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
简单说就是 this代表本类对象的引用,super代表父类对象的引用。如果想在子类中调用,子父类同名的方法时,在方法名前加this就是调用子类的,加super就是调用父类的。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
学习了,呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马