Рубрики

Наследование и конструкторы в Java

В Java конструктор базового класса без аргументов автоматически вызывается в конструкторе производного класса. Например, вывод следующей программы:

Вызывается конструктор базового класса
Вызывается конструктор производного класса

// имя файла: Main.java

class Base {

  Base() {

    System.out.println("Base Class Constructor Called ");

  }

}

  

class Derived extends Base {

  Derived() {

    System.out.println("Derived Class Constructor Called ");

  }

}

  

public class Main {

  public static void main(String[] args) {  

    Derived d = new Derived();

  }

}

Но если мы хотим вызвать параметризованный конструктор базового класса, то мы можем вызвать его с помощью super (). Следует отметить, что вызов конструктора базового класса должен быть первой строкой в конструкторе производного класса . Например, в следующей программе super (_x) является конструктором производного класса в первой строке.

// имя файла: Main.java

class Base {

  int x;

  Base(int _x) {

    x = _x;

  }

}

  

class Derived extends Base {

  int y;

  Derived(int _x, int _y) {

    super(_x);

    y = _y;

  }

  void Display() {

    System.out.println("x = "+x+", y = "+y);

  }

}

  

public class Main {

  public static void main(String[] args) {  

    Derived d = new Derived(10, 20);

    d.Display();

  }

}

Выход:
х = 10, у = 20

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Наследование и конструкторы в Java

0.00 (0%) 0 votes