之所以这么问,是因为网上查到了两种说法,一个说构造方法的作用是分配内存,创建对象,另一个说法是构造方法是给已经创建好的对象中的成员变量进行初始化
对第一种说法有几个疑点:
如果构造方法是用来创建对象的,无法解释抽象类中为什么存在构造方法
看到很多资料中说接口中不允许有构造方法的原因,是接口不能被实例化,可这种说法与上一个疑问有冲突,抽象类也无法被实例化,但它就有构造方法
个人比较倾向于第二种,就是构造方法的作用是给类中的变量进行初始化的,这种说法能够解释上边两个疑点,因为构造方法的作用是给变量进行初始化,所以抽象类中有构造方法,因为它有成员变量,需要进行初始化,同样的,接口中不存在构造方法,所以它没有变量,只允许final修饰的常量,因为常量不需要构造方法进行初始化
当然,以上也只是逻辑分析,根本没有代码支持,有人说需要去学一下JVM,里边有解释,可是JVM好难啊,看的头晕QwQ,只能可耻的做一次伸手党了,就想问下我这么理解对不对
先行拜谢!
Sicimike
泷木
相关分类