菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
20
0

JavaSE-super

原创
05/13 14:22
阅读数 62369

1.每一个类的无参构造的第一行带有一条隐式代码:super(),自动调用父类的无参构造

2.当我们创建一个有父类的无参对象时,实际已经调用了它父类的无参构造方法,不过调用它父类构造方法并不是创建了父类对象,父类对象在内存中是不存在的

3.在new一个对象时,执行到构造方法时,对象就已经创建了;但调用构造方法并不意味着对象就创建了,比如调用父类的构造时,父类对象是不创建的

 

我想应该有很多人在学习面向对象的时候对构造方法和对象之间的关系有一些误解,所以查了一些资料,总结如下:
1.首先要说明的是对象不是构造函数产生的,它只是创建对象过程中的一步,主要作用是完成类成员变量初始化,设计初衷是为了在函数运行过程中动态初始化,因为有些变量的初始化需要推迟到运行中完成。
2.new一个构造方法一定会创建一个对象,创建一个对象也一定会调用本类的构造方法,但是调用构造方法不一定会产生与之对应的对象。
3.例如继承了super类的子类,其构造方法会隐式调用父类的构造方法,但是这里并没有创建父类的对象,仅仅是为了初始化子类继承父类的变量


参考链接:https://www.imooc.com/article/details/id/17047

发表评论

0/200
20 点赞
0 评论
收藏
为你推荐 换一批