Constructor

Конструктор по умолчанию имеет такой же доступ как и сам клас.
class A 
{ 
    public A(int x){} 
} 
class B extends A { } 
public class test 
{ 
    public static void main (String args []) 
    {
        A a = new B(); 
        System.out.println("complete"); 
    } 
}
Будет ошибка компиляции, так как при создании класа B вызывается конструктор по умолчанию. А в класе А его нет.
Порядок инициализации объекта следующий:
1. Инициализация static полей во время загрузки класса
2. Инициализация суперкласса
3. Инициализация полей в порядке очередности перед вызовом любого конструктора класса
4. Конструктор класса

public class Main { 
  { 
    System.out.print("1 "); 
  } 
 
  Main(){ 
    System.out.print("2 "); 
  } 
 
  public static void main(String[] args) { 
    System.out.print("3 "); 
    Main m = new Main(); 
    System.out.print("4 "); 
  } 
 
  static { 
    System.out.print("5 "); 
  } 
} //5 3 1 2 4

Комментариев нет:

Отправить комментарий