我想应该有很多人在学习面向对象的时候对构造方法和对象之间的关系有一些误解,所以查了一些资料,总结如下:
1.首先要说明的是对象不是构造函数产生的,它只是创建对象过程中的一步,主要作用是完成类成员变量初始化,设计初衷是为了在函数运行过程中动态初始化,因为有些变量的初始化需要推迟到运行中完成。
2.new一个构造方法一定会创建一个对象,创建一个对象也一定会调用本类的构造方法,但是调用构造方法不一定会产生与之对应的对象。
3.例如继承了super类的子类,其构造方法会隐式调用父类的构造方法,但是这里并没有创建父类的对象,仅仅是为了初始化子类继承父类的变量
热门评论
问个困扰了好久的问题,接口中不允许存在构造方法的原因是因为接口不可被实例化,还是接口不允许有非抽象方法?
是不是正是因为没有了构造方法无法给接口中的变量初始化,所以接口中的变量必须使用final进行手动初始化?
求解答啊,先行拜谢?