Javadoc wspomina, że klasa Object ma publiczny konstruktor no-arg. Ale kod źródłowy obiektu nie zawiera żadnego jawnego konstruktora. Więc oczywiście kompilator wygenerował dla niego jeden. Jednak jeśli widzę śledzenie stosu wywołań, gdy konstruktor ma zamiar zwrócić (jak pokazano poniżej), nie widzę żadnego połączenia z Object.<init>
w tym śladu.Java: czy klasa Object ma konstruktor?
Pytanie brzmi, czy klasa Object ma domyślny konstruktor, jak mówi doc? Jeśli tak, dlaczego nie widzę go w śledzeniu stosu wywołań?
public ConTest()
{
new Throwable().printStackTrace();
}
Wynik:
java.lang.Throwable
at ConTest.<init>(ConTest.java:8)
at ConTest.main(ConTest.java:16)
hmm od http://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html Wszystkie klasy mają przynajmniej jeden konstruktor. Jeśli klasa nie zadeklaruje jawnie żadnej klasy, kompilator Javy automatycznie dostarcza konstruktor bezargumentowy , nazywany domyślnym konstruktorem. Ten domyślny konstruktor obiektu, jeśli klasa nie ma innego rodzica. – MimiEAM
Czy można zaakceptować więcej niż jedną odpowiedź? Ponieważ chciałbym zaakceptować wszystkie 4 odpowiedzi podane poniżej. – shrini1000