super() Используется для вызова родительского конструктора? Пожалуйста, объясните super().
Переведено автоматически
Ответ 1
super() вызывает родительский конструктор без аргументов.
Его можно использовать также с аргументами. Т.е. super(argument1) и он вызовет конструктор, который принимает 1 параметр типа argument1 (если существует).
Также его можно использовать для вызова методов из родительского. Т.е. super.aMethod()
В программе 1 вывод был только производного класса. Он не смог напечатать переменную ни базового, ни родительского класса. Но в программе 2 мы использовали super() with variable a при печати ее выходных данных, и вместо того, чтобы печатать значение переменной a производного класса, она печатала значение переменной a базового класса. Таким образом, это доказывает, что super() используется для вызова непосредственного родителя.
Хорошо, теперь обратите внимание на разницу между программой 3 и программой 4.
Здесь результат равен 200. Когда мы вызывали Show(), была вызвана Show() функция производного класса. Но что нам делать, если мы хотим вызвать Show() функцию родительского класса? Решение смотрите в программе 4.
Здесь мы получаем два вывода, 100 и 200. Когда вызывается Show() функция производного класса, она сначала вызывает Show() функцию родительского класса, потому что внутри Show() функции производного класса мы вызвали Show() функцию родительского класса, поместив super ключевое слово перед именем функции.
classDogextendsAnimal { publicDog() { super("From Dog constructor"); System.out.println("Constructing a dog."); } }
publicclassTest { publicstaticvoidmain(String[] a) { newDog(); } }
С принтами:
Constructing an animal: From Dog constructor Constructing a dog.
Ответ 4
Используется ли super() для вызова родительского конструктора?
ДА.
Пожалуйста, объясните о Super ().
super() это специальное использование super ключевого слова, при котором вы вызываете родительский конструктор без параметров. В общем, ключевое слово super может использоваться для вызова переопределенных методов, доступа к скрытым полям или вызова конструктора суперкласса.