关于JAVA中不同类的构造函数的基础知识很少:
- 我应该何时在类中添加空构造函数?
- 我应该何时在抽象类中添加构造函数?
- 我什么时候应该添加" super"扩展类中的构造函数?
醇>
3 个答案:
答案 0 :(得分:1)
- 自动生成空构造函数,但仅当类没有带参数的构造函数时才会生成。因此,如果你有一个带参数的构造函数,并且你想拥有空构造函数,那么你必须自己编写一个。
- 最常见的情况是,您在抽象类中有一些私有/受保护字段。
例如,如果抽象类Person具有字段名称surname,则它应该具有初始化这两个字段的构造函数。如果类Student扩展了Person类,它应该调用Person构造函数。
- 自动调用父类默认构造函数(不带参数)。如果要使用参数调用父构造函数,请使用super。
醇>
答案 1 :(得分:0)
- 隐式构造函数存在。但是,如果添加了其他构造函数但仍需要默认构造函数,请显式添加它。其他原因是如果要控制构造函数访问修饰符。隐式默认构造函数是public。
- 构造函数创建对象。如果要创建包含某些状态的即用型对象,通常需要对构造函数进行编码。在这种情况下,类是否是抽象并不重要。
- 我相信你的意思是你必须从子类显式调用超类'构造函数。除非你想调用超类的默认构造函数,否则你必须这样做。我建议总是显式调用超类的构造函数。这样的代码对于将来的修改更安全。
醇>
答案 2 :(得分:0)
- 如果需要显式默认构造函数,则隐式默认构造函数不可用。
- 该类的子类。
- 调用超类的非默认构造函数。
醇>