Кода -копия выглядит следующим образом:
Общедоступный класс Defers расширяет базу
{
Частный участник M1 = новый член («Член 1»);
{
System.out.println ("initial Block ()");
}
public derive () {
System.out.println ("derive ()");
}
частный участник M2 = новый член («Член 2»);
private int i = getInt ();
private int getInt ()
{
System.out.println ("getInt ()");
возврат 2;
}
Public Static Void Main (String [] args)
{
новый derive ();
}
}
классная база
{
общественная база ()
{
System.out.println ("base ()");
}
}
член класса
{
публичный участник (строка M)
{
System.out.println ("member ()"+m);
}
}
/*Вывод программы:
База()
Член () член 1
Начальный блок ()
Член () Член 2
getInt ()
Derive ()
*/
Вывод заключается в следующем: без учета инициализации статических членов при вызове конструктора объекта программа сначала вызывает конструктор родительского класса (конструктор родительского класса может быть указан через супер -ключевое слово, в противном случае конструктор без параметров будет вызван по умолчанию Переменная не имеет указанного значения, значение по умолчанию присваивается, то есть основные данные The Type равен 0 или false и т. Д., А объект нулевой;