构造函数在java中的作用是什么

时间:2013-12-27 02:23:38

标签: java constructor

我们知道java中的新Instance()子类,第一个递归调用将是父类构造函数,如果父类是抽象类,则会调用其构造函数吗?如果这是真的,意味着父类将被实例化?但是抽象类无法实例化,谁能解释这个问题。谢谢。

3 个答案:

答案 0 :(得分:4)

您必须了解构造函数不负责创建实例,而只是用于初始化它。创建实例是new关键字的作用(这甚至会返回新创建实例的引用,因为它没有返回类型,所以构造函数不能这样做。)
因此,即使您正在调用超类的构造函数(可以是抽象的),您也不是在创建该超类的实例,而是执行将初始化从其继承的字段的代码。

答案 1 :(得分:0)

无论是具体类还是抽象类,总是调用父类构造函数。实例化该类与将其定义赋予子类不同。如果您实例化子类,虽然您在子类对象中携带父类的结构和方法,但它绝不意味着实例化父类。

答案 2 :(得分:0)

抽象类构造函数实际上是用于继承子类,因为构造函数相当于在子类构造函数必须调用父类构造函数时调用的initialize方法,因此可以在子类抽象类抽象类中生成对象时按需初始化字段并执行一些初始化代码。实际上,在调用构造函数之前不一定要创建类的实例,子类也需要调用父类构造函数。并且它不一定生成实例构造函数被调用,在某些实现中,在特殊或特殊情况下,不会调用创建实例构造函数。构造函数调用不一定生成实例,但它必须是调用的实例,就像普通的实例方法一样。