首页 > 试题广场 > 在使用super和this关键字时,以下描述错误的是()
[不定项选择题]
在使用super和this关键字时,以下描述错误的是()
  • 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
  • super()和this()不一定要放在构造方法内第一行
  • this()和super()可以同时出现在一个构造函数中
  • this()和super()可以在static环境中使用,包括static方法和static语句块
super和this都只能位于构造器的第一行,而且不能同时使用,这是因为会造成初始化两次,this用于调用重载的构造器,super用于调用父类被子类重写的方法
发表于 2019-08-22 22:40:23 回复(0)
static修饰的方法不能存在this指针
发表于 2019-08-23 11:10:44 回复(0)
发表于 2019-05-20 17:35:37 回复(0)
漏选了C 。。。
发表于 2019-09-11 15:16:34 回复(0)
super this 放在构造器第一行,且部门同时使用
发表于 2019-09-10 15:50:58 回复(0)
this();代表的是当前对象(可以使用this.属性名调用当前对象的属性名字 ), super();代表当前对象的父对象,static 方法或者代码块中对象不一定存在,那么this() 和 super()当然不能用了
发表于 2019-09-06 23:22:42 回复(0)
先说一下,这个题答案是错误的,A选项是正确的,B选项是错误的。
我们分两种情况讨论,第一种当初始化的时候,父类没有带参构造器的话。子类构造器会默认调用父类无参构造器。这种情况下,子类构造器没有在第一行写super(),但实际上系统为了节约代码量,没显示而已,运行时会自动执行super()语句。
第二种当父类有带参构造器时,这个时候子类构造器如果需要调用父类带参构造器,则必须显式在子类构造器的第一行执行super(参数)。
因此,无论哪种情况,子类构造器在完成初始化过程中,都会调用父类构造器来帮助其进行初始化。因此,子类构造器第一行一定是super()。综上所述,A答案正确,B答案错误
发表于 2019-08-24 22:09:23 回复(1)