构造函数在抽象方法和扩展方法中

时间:2014-04-27 10:25:16

标签: java constructor

关于JAVA中不同类的构造函数的基础知识很少:

  1. 我应该何时在类中添加空构造函数?
  2. 我应该何时在抽象类中添加构造函数?
  3. 我什么时候应该添加" super"扩展类中的构造函数?

3 个答案:

答案 0 :(得分:1)

  1. 自动生成空构造函数,但仅当类没有带参数的构造函数时才会生成。因此,如果你有一个带参数的构造函数,并且你想拥有空构造函数,那么你必须自己编写一个。
  2. 最常见的情况是,您在抽象类中有一些私有/受保护字段。 例如,如果抽象类Person具有字段名称surname,则它应该具有初始化这两个字段的构造函数。如果类Student扩展了Person类,它应该调用Person构造函数。
  3. 自动调用父类默认构造函数(不带参数)。如果要使用参数调用父构造函数,请使用super。

答案 1 :(得分:0)

  1. 隐式构造函数存在。但是,如果添加了其他构造函数但仍需要默认构造函数,请显式添加它。其他原因是如果要控制构造函数访问修饰符。隐式默认构造函数是public。
  2. 构造函数创建对象。如果要创建包含某些状态的即用型对象,通常需要对构造函数进行编码。在这种情况下,类是否是抽象并不重要。
  3. 我相信你的意思是你必须从子类显式调用超类'构造函数。除非你想调用超类的默认构造函数,否则你必须这样做。我建议总是显式调用超类的构造函数。这样的代码对于将来的修改更安全。

答案 2 :(得分:0)

  1. 如果需要显式默认构造函数,则隐式默认构造函数不可用。
  2. 该类的子类。
  3. 调用超类的非默认构造函数。