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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨桦 高级黑马   /  2014-6-13 15:15  /  1217 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位同仁,本人新手,请问this和super在代码中怎样更好的使用,谢谢啦

5 个回复

倒序浏览
this和super代表第二都是 父类
回复 使用道具 举报
  this 代表的是本类对象的引用
  super代表父类的内存空间的标识。
  当子父类出现同名成员时,可以用super进行区分
  子类要调用父类构造函数时,可以使用super语句。


调用本类成员变量:

      this.成员变量

调用父类成员变量:

      super.成员变量

如果方法中局部变量 与 类中成员变量 名字重复, 使用this区别

如果类中成员变量 与 父类中成员变量 名字重复, 使用super区别
回复 使用道具 举报
上面回答的比较清楚了,我下面给你举个例子:

  1. package lh.zjzk;

  2. public class Parent {
  3.         private String child1;
  4.        
  5.         public Parent() {
  6.         }
  7.        
  8.         public Parent(String child1) {
  9.                 this.child1 = child1;
  10.         }

  11.         public void say(){
  12.                 System.out.println("我是家长");
  13.         }
  14.         public String getChild1() {
  15.                 return child1;
  16.         }
  17.         public void setChild1(String child1) {
  18.                 this.child1 = child1;
  19.         }
  20.        
  21. }
复制代码


子类 ZhangSan继承Parent,然后他也有一个say()方法,内容调用parent中的Say()
  1. package lh.zjzk;

  2. public class ZhangSan extends Parent {

  3.         @Override
  4.         public void say() {
  5.                 super.say();//调用父窗体的say()方法内容
  6.         }

  7.         public static void main(String[] args) {
  8.                 ZhangSan zs = new ZhangSan();
  9.                 zs.say();
  10.         }
  11. }
复制代码


输出结果:我是家长

评分

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

查看全部评分

回复 使用道具 举报
wangzhiyong515 发表于 2014-6-13 18:52
this 代表的是本类对象的引用
  super代表父类的内存空间的标识。
  当子父类出现同名成员时,可以用sup ...

可以写书了······表达很清晰····我本来就想给卤煮回一个this访问儿子自己···super访问他粑粑····  哎···惭愧惭愧···
回复 使用道具 举报
调用本类成员变量:

      this.成员变量

调用父类成员变量:

      super.成员变量

如果方法中局部变量 与 类中成员变量 名字重复, 使用this区别

如果类中成员变量 与 父类中成员变量 名字重复, 使用super区别


介绍简单明了,感觉不错,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马