2017-08-16 18 views
8

bu kodu bakmak Lütfen neden uzanır 8 9 değil 0 9 mu? , Sup yapıcı printA() çağırdığındaJava süper değişken bir 0

+0

Yapıcının, düşündüğünüz sırada çağrıldığından emin misiniz? –

+4

@ cricket_007: Tabi buna denir. Siz ** bunu Java'da çağırmaktan kaçınamazsınız. –

+0

@ T.J.Crowder Serileştirme veya klonlama kullanarak bunu önleyebilirsiniz. – Flown

cevap

14

(sınıf Sup aynı adı yöntemini geçersiz kılar) sınıfı Sub arasında printA yöntemi yürütür, yani hala 0 olan sınıf Sub arasında a değişkeninin değerini verir Sub örnek değişkenleri henüz başlatılmamış olduğundan (yalnızca Sup yapıcısı bittikten sonra başlatılırlar).

+2

Ayrıca, bazı kod standartlarının, kurucularda "final" veya "private" olarak adlandırılan tüm yöntemlerin kullanılmasını gerektirmesi de budur. Bu durumlara neden olan geçersiz kılmaların önüne geçmek için. – Kiskae

İlgili konular