您当前的位置: 首页 >  Java

liaowenxiong

暂无认证

  • 3浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java构造器

liaowenxiong 发布时间:2021-08-06 20:51:32 ,浏览量:3

  1. 构造器不能继承。

  2. 子类的构造器一定会默认调父类的无参构造器,除非写代码明确指定调用父类的有参数构造器!调父类构造器并不是创建父类的实例,只是执行构造器内的代码而已。

  3. 子类的构造器中调用父类无参构造器的代码可以不写,编译器会自动添加。

  4. 声明定义类的时候,不写构造器,编译器会默认提供无参构造器,而且这个无参构造器会默认调用父类的无参构造器;如果写了有参构造器,则编译器不会默认提供无参构造器,那么在写派生类(子类)的时候会报编译错误,因为子类的构造器一定会默认调父类的无参构造器,但是父类没有,所以肯定报错。因此所有的类都必须提供无参数构造器,减少继承时候的麻烦。

  5. 调用父类构造器的代码必须写在子类构造器的第一个语句中。

  6. 构造器可以访问成员变量

  7. 构造器可以直接调用成员方法

  8. 使用 this()super() 调用构造器,必须写在构造方法体内,且必须写在第一个语句中

  9. this()super() 不可以同时存在构造方法体内,这就意味着如果构造器内写了 this(),就不能再写 super(),且编译器也不会自动添加 super() 语句。注意,这里虽然构造器没有直接去调父类的构造器,但是调用的本类其它构造器有调用父类的构造器就可以了,所以最终都会先调用父类的构造器

注意: 1.编译器默认添加的调用父类构造器的语句 super();() 表示参数列表,你要调用父类有参构造器,就往 () 添加有关的参数。 2.this() 表示调用本类的无参构造器,调用本类有参构造器你就往 () 内添加相关的参数。 3.为什么要调父类的构造器,因为子类继承了父类所有的内容,所以子类的对象肯定包含父类的所有内容,那么就必须通过调父类构造器的方式才能取到父类的内容,然后再添加子类自己的内容在对象里面。这个有点像父类的对象和子类的对象合二为一。当然最终只有一个子类的对象。这个子类对象的示意图如下: 在这里插入图片描述

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.1367s