关于Java中的抽象类构造函数

时间:2016-10-05 03:11:11

标签: java constructor abstract-class

我有疑问是否可以在抽象类中的另一个构造函数中调用构造函数。例如,

public abstract class Sth{
  protected Sth(){}
  protected Sth(int number){}
  protected Sth(String word){
    int number = 0;
    this(number);
  }

似乎Java不允许我这样做。我想知道我们是否有办法让这种情况发生?感谢

-----------------------------------------------说明 - - - - - - - - - - - - - - - - - - - - - - - - - --------------------- 我想要做的目标是专门调用第二个构造函数。我必须在Java中调用第一个构造函数时出错。所以我想知道我们是否可以跳过第一个构造函数而不删除任何代码。对困惑感到抱歉。

2 个答案:

答案 0 :(得分:0)

  1. 第6行构造函数调用必须是构造函数中的第一个语句
  2. 最后,代码末尾缺少右括号
  3. 您想要以下代码吗?

    public abstract class Sth {
        protected Sth() {}
        protected Sth(int number) {}
        protected Sth(String word, int number) {
            this(number);
        }
    }
    

答案 1 :(得分:0)

实际上,答案是,抽象类构造函数不可用。所以,我们无法实例化它。查看Java docs