大大们,问个困扰许久的问题,构造方法的作用到底是什么?

之所以这么问,是因为网上查到了两种说法,一个说构造方法的作用是分配内存,创建对象,另一个说法是构造方法是给已经创建好的对象中的成员变量进行初始化

对第一种说法有几个疑点:

  1. 如果构造方法是用来创建对象的,无法解释抽象类中为什么存在构造方法

  2. 看到很多资料中说接口中不允许有构造方法的原因,是接口不能被实例化,可这种说法与上一个疑问有冲突,抽象类也无法被实例化,但它就有构造方法

个人比较倾向于第二种,就是构造方法的作用是给类中的变量进行初始化的,这种说法能够解释上边两个疑点,因为构造方法的作用是给变量进行初始化,所以抽象类中有构造方法,因为它有成员变量,需要进行初始化,同样的,接口中不存在构造方法,所以它没有变量,只允许final修饰的常量,因为常量不需要构造方法进行初始化

当然,以上也只是逻辑分析,根本没有代码支持,有人说需要去学一下JVM,里边有解释,可是JVM好难啊,看的头晕QwQ,只能可耻的做一次伸手党了,就想问下我这么理解对不对

先行拜谢!


泷木
浏览 697回答 2
2回答

Sicimike

构造函数作用是成员变量的初始化。抽象类就是用来继承的,子类实例化时,需要调用父类构造方法来初始化父类中的成员变量,抽象类中也可能有成员变量。所以抽象类中必须支持构造函数。

泷木

额,刚刚一个老程序员跟我说,抽象类里边的构造方法创建的是子类的对象?,该听哪个啊
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java