栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021.10.28构造器补充知识,Bean中加载上下文的ApplicationContext

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021.10.28构造器补充知识,Bean中加载上下文的ApplicationContext

问:请问语句System.out.println("-----------Spring加载完成");
加载完成之前(执行之前),Person和Teacher对象就已经被创建好了吗?
//答:已经创建好了,

通过控制台可以看出
----------Person()无参构造器---------
-----Teacher()无参构造器-------
-----------Spring加载完成
前面两个加载最快,所以是已经创建完成

将Spring的代码注释掉
新建一个Teacher对象,问:输出结果是什么?
答:输出结果应该为
问:这里不是只实例化了一个Teacher对象吗,应该只输出----Teacher()无参构造器----才对,为什么还输出了—Person()无参构造器—语句呢?

答:当你实例化一个字类时,他会先实例化所有父类的无参构造器,就是说在实例化Teacher时,他会先实例化父类Person()中的无参构造器,所以会先输出----person()----;

所有的代码都不改变,只改变Person()中的代码
请问,这样执行语句会报错吗
答:会报错

原因:我们在Teacher中写的是无参方法,那么我们在TestBean01中new的也是无参方法,但是在Teacher中我们继承了Person。实例化任何一个子类,他必须将所有父类的无参构造器初始化一遍,也就是说Teacher不会直接的打印【-----Teacher()无参构造器】,他会先到Person中执行一遍Person中的无参构造器。但是由于我们将Person中的无参构造器注释掉了,而且在Person中构造了一个有参的构造器
在一个类中,如果没有任何手动创建的构造器,默认系统会产生一个无参构造器,但是手动创建一个有参的构造器会覆盖掉默认的无参构造器,这里的无参构造器就不存在了,所以就报错了最后通过以上案例可以看出
Spring中
的作用就是new了一个对象,构造器的作用就是构造对象,构造实例

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353946.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号