Java中this与super

一、this

  1. this可以用来修饰属性方法构造器
  2. this修饰属性和方法时:
     this理解为当前对象当前正在创建的对象
     2.1 在类的方法中,可以使用“this.属性”或“this.方法”,调用当前对象的属性或方法,通常我们可以省略this,但如果方法的形参与类的属性重名时,我们必须显式地使用this来表明次变量时属性,而非形参
     2.2 在类的构造器中,可以使用“this.属性”或“this.方法”,调用当前正在创建的对象的属性或方法,通常我们可以省略this,但如果构造器的形参与类的属性重名时,我们必须显式地使用this来表明次变量时属性,而非形参
  3. this调用构造器
     3.1 在类的构造器中,可以显式的使用“this(参数表)”的方式调用本类中其他的构造器
     3.2 构造器中不能通过“this(参数表)”的方式调用自己
     3.3 如果一个类这种有n个构造器,那么最多只能有n-1个构造器使用“this(参数表)”
     3.4 “this(参数表)”必须声明在当前构造器的首行
     3.5 构造器内部,最多只能声明一个“this(参数表)”,来调用其他构造器

二、super

  1. super可以理解为父类
  2. super可以调用:属性方法构造器
  3. super调用属性,方法
     3.1 在子类的方法或构造器中,使用“super.属性”或“super.方法”的方式调用父类中声明的属性或方法,通常情况下可以省略super
     3.2 当子类和父类中定义了同名的属性时,如果想在子类中调用父类的属性,那么必须显式的使用“super.属性”的方式,这表明调用的是父类的属性
     3.3 当子类重写了父类的方法时,如果想在子类中调用父类中被重写的方法,那么必须显式的使用“super.方法”的方式,这表明调用的是父类中被重写的方法
  4. super调用构造器
     4.1 我们可以使用“super(参数表)”的方法调用父类中的声明的构造器
     4.2 “super(参数表)”使用时必须声明在子类构造器的首行
     4.3 在类的构造器中“super(参数表)”和“this(参数表)”只能二选一,不能同时出现(因为它们都要求要放在构造器的首行)
     4.4 在构造器首行没有显式声明“super(参数表)”或“this(参数表)”,则默认调用的是父类的空参构造器,即“super()”
     4.5 子类的多个构造器中,至少有一个构造器调用“super(参数表)”的形式调用父类中的构造器
上一篇:spring 动态代理_Spring中的两种动态代理


下一篇:7、Java——对象:包,private,super,extends,重写,final,modifier,object