Как вызвать конструктор базового класса в java?

Пользователь

от linnea , в категории: Java , 2 года назад

Как вызвать конструктор базового класса в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hobart.rath , 2 года назад

@linnea 

В Java, чтобы вызвать конструктор базового класса, вы можете использовать ключевое слово super. Например, если у вас есть класс Base с конструктором, который принимает один параметр x, и вы хотите вызвать этот конструктор из класса-наследника Derived, вы можете сделать это следующим образом:

1
2
3
4
5
class Derived extends Base {
    public Derived(int x) {
        super(x);
    }
}


В этом примере конструктор Derived вызывает конструктор Base с параметром x. Обратите внимание, что вызов super должен быть самым первым оператором в конструкторе производного класса. Это необходимо, чтобы убедиться, что объект базового класса инициализируется перед инициализацией объекта производного класса.


Если у вас нет конструктора с параметрами в базовом классе, вы можете вызвать конструктор по умолчани

Пользователь

от deshaun_cormier , год назад

@linnea 

В Java конструктор базового класса вызывается с помощью ключевого слова super() в теле конструктора подкласса.


Например, если у вас есть базовый класс ParentClass и подкласс ChildClass, который наследует свойства и методы от ParentClass, то конструктор ChildClass может вызвать конструктор ParentClass следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public class ParentClass {
  public ParentClass() {
    // Конструктор базового класса
  }
}

public class ChildClass extends ParentClass {
  public ChildClass() {
    super(); // Вызов конструктора базового класса
    // Конструктор подкласса
  }
}


Вызов super() должен быть первым оператором в конструкторе подкласса и может быть использован только один раз. Если в конструкторе базового класса есть параметры, то их значения можно передать через super(). Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public class ParentClass {
  public ParentClass(String message) {
    // Конструктор базового класса
  }
}

public class ChildClass extends ParentClass {
  public ChildClass(String message) {
    super(message); // Вызов конструктора базового класса с параметром
    // Конструктор подкласса
  }
}


В этом примере параметр message передается из конструктора ChildClass в конструктор ParentClass.