В този пример ще научим как можем да извикаме един конструктор от друг конструктор в Java.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:
- Java конструктори
- Java методи
Пример 1: Java програма за извикване на един конструктор от друг
class Main ( int sum; // first constructor Main() ( // calling the second constructor this(5, 2); ) // second constructor Main(int arg1, int arg2) ( // add two value this.sum = arg1 + arg2; ) void display() ( System.out.println("Sum is: " + sum); ) // main class public static void main(String() args) ( // call the first constructor Main obj = new Main(); // call display method obj.display(); ) )
Изход
Сумата е: 7
В горния пример създадохме клас на име Main. Тук сте създали два конструктора вътре в класа Main.
Main() (… ) Main(int arg1, int arg2) (… )
Вътре в първия конструктор използвахме this
ключова дума, за да извикаме втория конструктор.
this(5, 2);
Тук вторият конструктор се извиква от първия конструктор чрез предаване на аргументи 5 и 2 .
Забележка : Линията в конструктора, която извиква друг конструктор, трябва да бъде първата линия на конструктора. Тоест this(5, 2)
трябва да е първият ред на Main()
.
Пример 2: Извикайте конструктора на суперкласа от конструктора на дъщерния клас
Също така можем да извикаме конструктора на суперкласа от конструктора на детски клас, използвайки super()
.
// superclass class Languages ( // constructor of the superclass Languages(int version1, int version2) ( if (version1> version2) ( System.out.println("The latest version is: " + version1); ) else ( System.out.println("The latest version is: " + version2); ) ) ) // child class class Main extends Languages ( // constructor of the child class Main() ( // calling the constructor of super class super(11, 8); ) // main method public static void main(String() args) ( // call the first constructor Main obj = new Main(); ) )
Изход
Последната версия е: 11
В горния пример създадохме суперклас на име Езици и подклас Main. Вътре в конструктора на класа Main забележете линията,
super(11, 8);
Тук извикваме конструктора на суперкласа (т.е. Languages(int version1, int version2)
) от конструктора на подкласа ( Main()
).