Можем ли мы иметь тип возвращаемого значения для конструктора в Java? - PullRequest
10 голосов
/ 17 августа 2010

Следующий код выдает ошибку компиляции:

class parent {
  parent(int a){}
}

class child extends parent{}

Ошибка:

Main.java:6: cannot find symbol
symbol  : constructor parent()
location: class parent
class child extends parent{}
^
1 error

Я пытался делать разные вещи и обнаружил, что добавление типа возврата к родительскому конструктору избавило от ошибки !!!

class parent {
  int parent(int a){}
}

class child extends parent{}

Я читал, что конструкторы не должны иметь тип возвращаемого значения, что явно не всегда правильно. Итак, мой вопрос, когда мы должны иметь тип возвращаемого значения для конструктора?

Ответы [ 11 ]

0 голосов
/ 17 августа 2010

Все, что вы сделали, добавив int, это превратили «конструктор» в метод, который имеет видимость по умолчанию, а затем, поскольку вы не указали конструктор, он просто добавит конструктор по умолчанию для вас во время компиляции.

Если вы хотите, чтобы это компилировалось, вам нужно будет указать конструктор по умолчанию, который ищет класс Child, например:

  class parent 
    {
      parent(int a){}

      parent(){}
    }

class child extends parent{}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...