【Java基础】关键字super

1.super

  • super关键字表示父类的,可以在子类中使用super关键字调用父类的属性、方法、构造器。通常情况下可以省略super。
  • 当子类和父类中定义了同名的属性时,子类中使用super.属性调用父类中的属性。
  • 当子类重写了父类中的方法后,子类中使用super.方法调用父类中的方法。

2.super调用构造器

  • 在子类中使用super(形参列表)调用父类中指定的构造器。
  • super(形参列表)必须声明在子类构造器中的首行。
  • 在类的构造器中,this(形参列表)super(形参列表)只能二选一,不能同时出现(因为这俩都要求在首行)。
  • 在构造器中,没有使用this(形参列表)super(形参列表)则默认为super()调用父类中的空参构造器。

3.为什么要放在首行

  • 构造器的作用是创建对象和对象初始化,放在第一行保证父类对象先创建初始化。
  • 构造函数只能被构造函数调用,对象只会初始化一次。
  • 同时使用super()this()则会创建两个相同对象(this()->该类构造器->父类构造器)

为什么this和super要放在第一行

4.this和super的区别

区别点 this super
访问属性 访问本类中的属性,如果本类没有此属性则从父类中继续查找 直接访问父类中的属性
调用方法 调用本类中的方法,如果本类中没有此方法则从父类中继续查找 直接访问父类中的方法
调用构造器 调用本类构造器,必须放在构造器首行 调用父类构造器,必须放在子类构造器首行
posted @ 2022-09-13 10:15  植树chen  阅读(76)  评论(0编辑  收藏  举报