继承中的this()和super()特别说明

简介: 继承中的this()和super()特别说明

继承中的this()和super()特别说明

  • 特别说明;我们知道 ,类中会默认有一个空构造,所有子类在初始化时,会自动调用父类的空构造。
  • 此时,在子类的构造器中,super(); 是可以省略的 ;
  • 但当我们已经给父类创建了带参构造器,却没有创空构造器时,此时在初始化子类时,会报错,除非手动输入一个和我们在父类中定义相同参数类型的super()才可以,如super(int a);
  • 构造函数必须出现在第一行上。 所以,注定了你只能调用一个构造函数。
  • 默认的,父类的或者本类的其它构造,你自己选一个。

重点简述:

如果父类没有无参构造器,有其他的有参构造器,那么子类的所有构造器中,必须要自行添加本类构造方法或者父类的有参构造方法( this()\super() )

简而言之:

如果子类构造器中没有显式调用父类构造方法或本类构造方法,且父类没有无参构造方法,则会编译错误

目录
相关文章
|
5月前
|
Java 编译器
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
|
4月前
|
Java
怎么用super调用超类构造函数?
Java 中的 `super` 关键字用于子类引用父类的构造函数和成员。当子类构造函数需要调用父类的构造函数时,`super` 须作为第一条语句,如 `super(param列表);`,这允许子类初始化父类的属性。示例中,`BoxWeight` 类通过 `super(w, h, d)` 调用 `Box` 的构造函数来设置尺寸,而 `BoxWeight` 自己仅设置重量。`super` 也可用于访问被子类隐藏的父类成员,实现封装。
|
5月前
|
Java 编译器 数据处理
JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......
JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......
58 0
|
6月前
|
Java 容器
【Java探索之旅】继承结构 继承和组合 protected final
【Java探索之旅】继承结构 继承和组合 protected final
36 0
|
6月前
|
Java 编译器
【Java探索之旅】super 子类构造 掌握
【Java探索之旅】super 子类构造 掌握
40 0
|
Java
【Java面向对象】继承的认识与实现(2) 关键字 this 与 super 区别
【Java面向对象】继承的认识与实现(2) 关键字 this 与 super 区别
78 0
|
前端开发
前端学习案例1-继承中的super指向和this总结1
前端学习案例1-继承中的super指向和this总结1
48 0
前端学习案例1-继承中的super指向和this总结1
|
前端开发
前端学习案例1-继承中的super指向和this总结2
前端学习案例1-继承中的super指向和this总结2
61 0
前端学习案例1-继承中的super指向和this总结2
|
设计模式 JavaScript 前端开发
class 继承的重点
前文已提过:在 class 出现之前,JavaScript 实现继承是件麻烦事,构造函数继承有加上原型上的函数不能复用的问题;原型链继承又存在引用值属性的修改不独立的问题;组合继承又存在两次调用构造函数的问题,寄生组合继承,写起来又太麻烦了,总之,在 class 出现前,JavaScipt 实现继承真是件麻烦事儿。
Java语法:super 详解
学习super时,应该和this对比着学习,以达到事半公倍的效果
391 0