Я запутался в фактической видимости конструкторов по умолчанию. Мне дали следующий код в книге, которая объясняет, что создан конструктор по умолчанию, но физически не показывает его (т.е. Employee()), несмотря на то, что он назначается автоматически:
public class Employee {
private String name;
private int zip;
private int age;
}
В другой книге мне сказали, что это конструктор по умолчанию, поскольку он не принимает аргументов:
public class Pet {
private String name;
private int weight;
Pet(){}
}
Действительно ли этот последний конструктор используется по умолчанию, если я его физически определяю? Или конструктор по умолчанию невидим для моего кода, как в первом примере, из-за чего-то, связанного с суперклассом?
Изменить: я спрашиваю о физическом коде, который записывается в класс. Один источник говорит мне, что конструктор по умолчанию явно прописан, другой говорит мне, что он не будет отображаться в коде и, по сути, предполагается, что он существует, хотя он не очевиден для пользователя. Моя проблема заключается в том, что явный исходит из учебного пособия по сертификату Java, поэтому это вызывает у меня некоторую путаницу.