其实要刨根问底的话,创键对象是在new的时候内存分配空间时创建的,大部分时候,程序是通过new关键字来为java对象申请空间,然后通过构造器来初始化对象,所以事实上构造器只负责初始化对象。有的情况创建类是不用构造函数的。
如:通过反序列化恢复java对象(就是将java对象保存到本地文件中,再通过读取本地文件从而读取java对象)- // 将对象写入硬盘中
- ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
- "F:\\3\\object1.txt"));
- Person p = new Person("zhangsan");
- oos.writeObject(p);
- oos.flush();
- // 从硬盘中读取对象
- ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
- "F:\\3\\object1.txt"));
- Person p1 = (Person) ois.readObject();
复制代码 所以我觉得子类创建对象调用父类构造器是为了给子类初始化(子类继承了父类的属性和方法,也需要初始化),并没有创建父类对象。
以上是个人看法,有错希望大家指出来一起学习。
|