В Java конструктор подкласса всегда вызывает один из конструкторов родительского класса. Это необходимо для правильной инициализации класса. Даже когда он находится в подклассе, поля и состояние должны быть настроены, и именно так это делается в Java. Если ни один не указан явно, он вызывает конструктор по умолчанию без аргументов.

оздании Java-программы я столкнулся с проблемой,

Конструктор подкласса выдает ошибку, вызывая метод суперкласса

Код похож на это:

class Manage
{
    public static void main(String[] args) 
    {
        Manager m1 = new Manager ( 35 );
    }
}

class Employee
{
        int emp_id;
        public Employee(int id)
        {
                this.emp_id = id;
        }
        public int get_id()
        {
                return emp_id;
        }

}
class Manager extends Employee
{
        public Manager(int id )
        {
                this.emp_id = id ;
        }
}

class Engineer extends Employee
{
        public Engineer(int id)
        {
                this.emp_id = id ;
        }
}

И ошибка примерно такая:

$ javac app.java 
app.java:25: cannot find symbol
symbol  : constructor Employee()
location: class Employee
        {
        ^
app.java:33: cannot find symbol
symbol  : constructor Employee()
location: class Employee
        {
        ^
2 errors

Почему это происходит?

Ответы на вопрос(4)

Ваш ответ на вопрос