精华内容
下载资源
问答
  • Super和this区别 代表的对象不同 this:本身调用这个对象 super:代表父类对象 前提 this:没用继承也可以使用 super:只能在继承条件才可以使用 构造方法 this():本类的构造 super():分类的构造 ...

    Super和this区别

    • 代表的对象不同
      • this:本身调用这个对象
      • super:代表父类对象
    • 前提
      • this:没用继承也可以使用
      • super:只能在继承条件才可以使用
    • 构造方法
      • this():本类的构造
      • super():分类的构造

    Super注意点

    1. super调用父类的构造方法,必须在构造方法的第一行代码出现。
    2. super必须只能出现在子类的方法或者构造方法中。
    3. super和this不能同时调用构造方法,不能同时出现在构造方法。
    展开全文
  • 来用父类中指定操作;...super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识 子类继承父类之后,new子类的时候,子类调用了父类的构造器,但是没有创建新的子类,只是调用了子类的构造器

    来用父类中指定操作;

    super可以用于访问父类中定义的属性

    成员方法

    构造器

    注意

    尤其当子类父类出现同名成员时,可以用super进行区分

    super的追溯不仅限于直接父类

    superthis的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识

    子类继承父类之后,new子类的时候,子类调用了父类的构造器,但是没有创建新的子类,只是调用了子类的构造器

    子类父类重名时,子类调用this.Id,父类调用super.Id

              方法:当 子类重写父类的方法以后,在子类中若想再显示的调用父类的被重写的方法,就需要用super.方法

    构造器:使用super修饰构造器

    格式:super(形参列表)显示的调用父类中指定的构造器

    在构造器的内部必须要声明在首行

    在构造器内部,this(xingcan )或者super(xingcan)只能出现一个

    当构造器中不显示的调用this(xingcan )或者super(xingcan)默认是调用的父类的空参的构造器

    建议在写一个父类时,要尽量提供一个空参的构造器!!

     

    区别点

    this

    super

    1

     方法属性

    访问本类中的属性,

    如果本类没有此属性

    则从父类中继续查找

    访问父类中属性

    2

    调用方法

    访问本类中的方法

    直接访问父类中方法

    3

    调用构造器

    调用本类构造器,

    必须放在构造器的首行

    调用父类构造器

    必须放在子类构造器

    的首行

    4

    特殊

    表示当前对象

    无此概念

    Object是根父类

    展开全文
  • javathis和super用法 this和 super 关键字的区别
  • package com.cj.study.thissuper; public class Student{ public String name; public void setName(String name) { this.name = name; } public String getName() { return name; } } ...

    铁子们,快扫码关注啦!或 wx搜索:“聊5毛钱的java”,关注可领取博主的Java学习视频+资料,保证都是干货

    今天就用最通俗易懂的大白话来聊一聊Java中的this和super以及this()和 super()

    1、this关键字

    package com.cj.study.thissuper;
    
    public class Student{
    	
    	public String name;
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public String getName() {
    		return name;
    	}
    
    }
    

    上述代码是很常见的javabean的定义,里边经常会出现this这个关键字

    那有思考过为什么这里需要用this这个关键字吗?

    为了更简单的解释这个问题,将上述的代码改一下

    把set方法里的this.name的this去掉,变成了name=name,就会发现个问题,这2个name都是局部变量的name,这就变成了局部变量给局部变量赋值了, 但是咱们是想给对象的name赋值,并不是想给局部变量赋值,由于名称一样导致区分不出来了

    所以必须用this来区分一下;当然如果两个不重名的话,name=nnn 这种的不加this是没问题的,这是因为它是先在局部找变量,如果找到了就用局部变量,没找到就去找全局变量。

    那这个this到底是啥呢?

    this是当前对象的引用,就是说当前用构造函数建的对象是谁,这个this就代表谁,它是一个引用

    另外一个问题,如果构造函数想调用另一个构造函数该怎么办呢?

    这个时候就需要使用this()了

    注意:如果在构造函数里调用其他重载的构造函数时,则,被调用的那个构造函数必须放在代码的第一行

    下边是示例:

    正确的

    错误的

    2、super关键字

    上述例子是父类里定义了一个字段是num,子类里没有定义,所以最后的输出结果是showNum=4

    但是如果子类也定义了一个num值为5,那打印出来的一定是5,因为在调用成员(成员变量和成员方法)时如果不特殊标明,前边其实默认省略了this,他默认调用的是子类的

    但是如果这时候我就想用父类的不想用子类的,怎么办

    这时候又出现了区分不出来的情况,所以要用super来标明你要调用父类的,而不是子类的

    当只有父类有,子类没有的情况下,则调的是父类的(因为子类继承了父类,子类就拥有了父类除了私有外的所有东西)

    当父类和子类都有的情况下,默认调用的是子类的,但是用super标明了以后调的是父类的

    如上图所示,this和super的引用是这样指向对象的成员变量和方法:

    this不仅指向了子类的成员变量和方法,它还指向了子类从父类继承过来的变量和方法

    而super仅仅只是指向了子类从父类继承的成员变量和方法。

    那如果子类构造函数想调用父类的构造函数,怎么办?

    这时候就要用到super();了

    *****注意:在子类的构造函数里都必须去调用父类的构造函数,你不写其实第一行都有一个隐式的super();

    如果父类里不定义无参的构造的话子类的构造函数会报错,所以说明在子类的构造函数默认的都有一句隐式的super();

    你的构造函数里默认的都有一个隐式的super();去调用父类无参的构造,但是如果你的构造函数里不想调用默认的父类无参构造,而是想调用父类其他的构造函数,则你可以显式的写出来,而且如果你写了则调用父类的supper(xxx) 必须放在第一行

    以上就是对this和super的一些总结,可能有点乱,但是还是希望对大家有所帮助

    铁子们,如果觉得文章对你有所帮助,可以点关注,点赞

    也可以关注下公众号:扫码或 wx搜索:“聊5毛钱的java”,欢迎一起学习交流,关注公众号可领取博主的Java学习视频+资料,保证都是干货

    3Q~

    纯手敲原创不易,如果觉得对你有帮助,可以打赏支持一下,哈哈,感谢~

               

    展开全文
  • super和this区别

    千次阅读 2015-09-13 12:57:34
    super和this的异同: 1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句) 3)super: 它引用...

    super和this的异同:
    1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
    2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
    3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)
    4)this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)
    5)调用super()必须写在子类构造方法的第一行,否则编译不通
    过。每个子类构造方法的第一条语句,都是隐含地调用super(),
    如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
       6)super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
       7)super()和this()均需放在构造方法内第一行。
       8)尽管可以用this调用一个构造器,但却不能调用两个。
       9)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
       10)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
       11)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

    展开全文
  • super this区别

    千次阅读 2019-03-02 17:50:04
    super和this的异同: super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句) this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句) super: 它引用当前对象的直接...
  • 区分局部成员之间的问题 super:指代父类对象 1.调用父类的构造器 super() 如果没有显示定义,调用父类的哪一个构造器,默认首行调用super()父类空构造 因为一般子类构造器的首行会默认调用父类空...
  • super,this区别

    2013-02-21 00:52:59
    super,this区别super,this区别
  • 1.super()和this()区别super():调用父类无形参的构造方法; super(形参):调用父类中某个带形参的构造方法; this(形参):调用本类中另一种形式的构造方法;  注意:放...
  • java super和this区别

    2016-03-15 20:44:09
    使用super&this调用成员变量方法  可以使用super访问父类被子类隐藏的变量或覆盖的方法。当前类如果是从超类继承而来的,当调用super.XX()就是调用基类版本的XX()方法。见示例1。  当类中有两个同名变量...
  • java super this 关键字的区分使用

    千次阅读 多人点赞 2018-10-10 16:07:46
    java super this 关键字的区分使用 在java类中使用super来调用父类中的指定操作: super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造方法中调用父类的构造器 ...
  • Super和this用法

    千次阅读 2016-10-21 14:17:46
    啊 class Super { private int a; protected Super(int a) { this.a = a; } } ... class Sub extends Super { public Sub(int a) { super(a); } public Sub() { this.a = 5; } }
  • 主要介绍了Java中super和this的用法详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了Java super和this的对比及使用的相关资料,java中thissuper会经常在使用的时候混淆,需要的朋友可以参考下
  • super和this的异同:  1)super(参数):调用父类的构造方法。  2)this(参数):调用本类的其他构造方法。  3)都必须放在构造方法的第一行。  4)super:引用父类中的成员,当子类父类中的方法重名时...
  • this和super this:代表对象(代表本类类型对象的引用)。就是所在方法所属对象的引用。哪个对象调用了this所在的方法,this就代表哪个对象,就是哪个对象的引用。 this还可以用于构造方法间的调用。 调用格式:...
  • 主要介绍了java基础知识 super和this使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • java super和this区别

    2015-03-04 17:44:07
    this.varibly代表的是使用本类的成员变量,但是可以省略,因此在给成员变量赋值的时候,可以不用写this,但是如果有把一个同名的局部变量赋给该成员变量,就必须使用this关键字,也就是this区别成员变量局部变量。...
  • super和this的异同

    2019-04-04 16:42:54
    super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句) this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句) super: 它引用当前对象的直接父类中的成员(用来...
  • Java中this和super区别

    千次阅读 2021-02-05 13:59:40
    JavaSE基础之this和super区别
  • super this

    千次阅读 2007-03-16 13:45:00
    在继承的结构中,subclass可以通过super来调用superclass的方法,通过this来调用自己本身的方法.其实super和this有很大的区别,根据java的定义,this是一个指向本对象的指针, 然而super是一个java关键字.
  • java this和super区别

    2020-02-06 09:39:49
    1.this和super区别 1.this表示本类对象 super表示父类操作 2.本类操作:this.属性、this.方法()、this() 父类操作:super.属性、super.方法()、super() 3.使用构造(区别) this调用本类构造,放在首行 super子类调用父类...
  • 主要介绍了详解Java使用super和this来重载构造方法的相关资料,这里提供实例来帮助大家理解这部分内容,需要的朋友可以参考下
  • super一般是子类调用父类的构造器,而this一般是同一个类里ian,一个重载的构造器调用另一个构造器,来完成初始化。 super调用父类的构造器,必须出现在子类的第一行
  • java继承和super和this

    千次阅读 2021-09-11 10:47:01
    一个构造方法中只能有调用一次其他的构造方法 this()/this(实际参数):调用本类的无参构造方法/含参构造方法 super和this this:本类对象的引用 super:本类对象的父引用 //this,super 不是真实存在的对象 //当有对象...
  • this和super区别和各自的作用?

    千次阅读 2019-05-27 20:34:17
    文章目录一、二者的区别二、注意点: 一、二者的区别 1.属性的区别this访问本类中的属性,如果本类没有此属性则从父类中继续查找。super访问父类中的属性。 2.方法的区别this访问本类中的方法,如果本类没有此...
  • java中this和super的用法区别

    千次阅读 多人点赞 2019-06-03 22:12:53
    java中this和super的用法区别 this this是自身的一个对象,代表对象本身,用法大致分为以下3类: 1、普通直接引用当前对象本身 2、形参成员名重名,用this来区分 3、引用构造方法 ,this(参数) ,应该为构造函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,135,120
精华内容 454,048
关键字:

super和this的区别