Konstruktory z super() i this()

Konstruktory z super() i this()
D3X
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 8 lat
  • Postów:187
0

Czytając odmęty internetów :) dowiedziałem się, że klasa dziedziczy po obiekcie i to dodaje kompilator.

Dowiedziałem się też, że w tejże klasie kompilator dodaje bezargumentowy domyślny konstruktor, a w nim znajduje się super().

Stąd rodzi się pytanie. Czemu niemożliwe jest dodanie super() i this() w konstruktorze, jedno po drugim (kolejność dowolna)?

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Bo projektanci języka zdecydowali, że zarówno this(...) jaki i super(...) musi być pierwszą instrukcją konstruktora.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
5

Wołając this() wołasz automatycznie także super() bo konstruktor musi zawołać super(). Więc zawołanie obu tych metod w jednym miejscu powodowałoby zawołanie super() wielokrotnie.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
D3X
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 8 lat
  • Postów:187
0

@Shalom Super odpowiedź. Dzięki wielkie ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.