黑马程序员技术交流社区

标题: this和super分别是什么,他们各自在什么场景使用。 [打印本页]

作者: LTT    时间: 2015-5-10 16:27
标题: this和super分别是什么,他们各自在什么场景使用。
最好能举个例子

作者: 破烂小白    时间: 2015-5-10 16:40
this是静态的
作者: 黄小橙    时间: 2015-5-10 16:44
this是指向本类对象,super是父类对象
作者: 流泪的青蛙    时间: 2015-5-10 18:06
this指的是当前对象
作者: 流泪的青蛙    时间: 2015-5-10 18:07
super指的是父类的
作者: an_lucas    时间: 2015-5-10 18:49
this就是当前对象的引用,ruper就是父类的引用
作者: 程梦真    时间: 2015-5-10 20:20
。。。。。。。。。。。。。。
作者: 仅此一抹心醉    时间: 2015-5-10 20:33
比如说你和你爸都吃饭  但是你吃面食  你爸吃米饭  用this.吃饭()结果是吃面食  用super.吃饭()结果是吃米饭
作者: YRDHelloworld    时间: 2015-5-10 21:47
this是引用本类的对象,super是引用的父类中的对象
作者: 李海明    时间: 2015-5-11 10:31
一般是在继承中用,当子类对象想调用父类对象的方法就用super调用。
作者: 空--格    时间: 2015-5-11 21:46
概念上的区别
          super代表的是父类内存空间标识
          this代表所在方法所属对象的引用
什么时候使用
          1、当子父类中出现同名成员可以用super区分
          2、子类调用父类的构造方法可以用super

作者: 左手神    时间: 2015-5-11 22:29
this是本类对象,super是父类引用
作者: 黄冬    时间: 2015-5-11 23:39
super和this的区别:(只是在子父类中的应用,没有在测试类主函数中用的)
this代表本类对象的引用,是一个对象,本类的对象
super代表父类内存空间的标示(可以理解为父类的对象引用,但不是对象)
super和this的使用:
成员变量:
this.变量 ----当前类的成员变量
super.变量----父类的成员变量
构造方法:(用在构造方法中,一般不怎么用)
this(参数)  ---   本类的其他构造方法
super(参数)---- 父类的构造方法,
成员方法:
this.方法名()----调用本类的方法
super.方法名() ----调用父类的方法
作者: 南方小道士    时间: 2015-5-11 23:49
this是指向本类对象,super是父类对象
作者: 鸿鹄2008    时间: 2015-5-12 00:03
class A{
    void show(){
         System.out.println("A...show");
    }
}
class B extends {
    void show(){
        System.out.println("B...show");
    }
    void method(){
        super.show();
    }
}

class Demo {
    public static void main(String[] args) {
         B b = new B();
         b.show();
         b.method();
    }
}
作者: CoeusLYJ    时间: 2015-5-12 09:17
this,super其实都是变量
作者: 杨春雨    时间: 2015-5-12 12:08
  1. public class Person {
  2.         private String name;

  3.         public String getName() {
  4.                 return name;
  5.         }

  6.         public void setName(String name) {
  7.                 //this就是指当前这个类,因为你外界传进来一个name,
  8.                 //就是这个方法的参数是一个String name
  9.                 //为了区分这个参数的name 和 本身Person类中的 String name;所以用this
  10.                 //当然 你如果传进来的参数改成name1 那么下面这句话可以不加this
  11.                 this.name = name;
  12.         }
  13.        
  14.         public Person() {
  15.                 System.out.println("我是Person的构造函数");
  16.         }
  17. }
复制代码
  1. public class Student extends Person {
  2.         public Student() {
  3.                 //为什么要写这个super()哪
  4.                 //是因为Student继承了Person
  5.                 //这个super()作用就是调用父类(Person)的构造方法。
  6.                 //当然有参数的话就加个参数
  7.                 //我认为楼主是不是说为什么有的地方写这个super()有的不写那。
  8.                 //这个super()无参数的话你不写系统也会默认调用。
  9.                 super();
  10.         }
  11. }
复制代码





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