kotlin的主构造器和次构造器有什么区别?

kotlin的主构造器和次构造器有什么区别?

阅读 4.5k
2 个回答

主构造函数在类头中申明,而次构造函数在类体中申明;
主构造函数没有任何修饰符时可以省略constructor关键字,而次构造函数不能省略;
主构造函数不能包含任何的代码,而次构造函数可以;
主构造函数的参数可以在类体中的属性初始化代码和初始化块中使用,而次构造函数的参数不能;
主构造函数中可以直接申明并初始化属性,而次构造函数不能直接申明属性;
如果申明了主构造函数,那么所有的次构造函数都必需直接或间接地委托给主构造函数;
非抽象类中如果没有声明任何构造函数,会生成一个不带参数的主构造函数,而不会生成任何次构造函数。

如果我没记错的话,次构造器必须调用主构造器。

而且主构造器是直接写在类声明上的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进