接口没有构造函数,抽象类有构造函数
为什么接口没有构造函数???
-
因为:接口中的变量本就是常量,定义的时候就被显示初始化了,定义后的值以后也不能改变,
-
而构造方法一般都是用来在创建对象的时候为对象的成员属性赋初始值,这样就产生矛盾了.
-
另一方面将,Java体系是单继承多实现,如果接口有构造函数那么他的子类根本就不知道该用哪一个上级的构造函数.
-
任何类在创建对象的时候,都会调用父类的构造方法(子类的构造函数的第一行默认是:super()
如果没有父类则默认调用Object的无参构造.
构造函数用来创建对象的时候进行成员变量的初始化,而抽象类却不能直接创建对象,那他为什么 还要定义构造函数呢??
- 因为他自己不用不代表他的儿子不能用,所以抽象类的构造函数 是为了给子类创建对象的时候调用的.