class DemoClass {
public static void main(String args[]) {
System.out.println("Start");
A a=new D();
}
}
class A {
static {
System.out.println("Static A");
A c=new C();
}
public A() {
System.out.println("Constr A");
}
}
class B extends A {
static {
System.out.println("Static B");
}
public B() {
System.out.println("Constr B");
}
}
class C extends B {
static {
System.out.println("Static C");
}
public C() {
System.out.println("Constr C");
}
}
class D extends C {
static {
System.out.println("Static D");
}
public D() {
System.out.println("Constr D");
}
}
ऊपर कोड के लिए निष्पादन का आदेश है:जब ऑब्जेक्ट बनाते समय जावा ब्लॉक में स्थिर ब्लॉक निष्पादित किया जाएगा?
Start
Static A
Constr A
Constr B
Constr C
Static B
Static C
Static D
Constr A
Constr B
Constr C
Constr D
मेरी नजर में सभी स्थैतिक ब्लॉक निष्पादित किया जाना चाहिए पहले तो केवल वस्तु बनाया जाएगा। लेकिन, यहां कक्षा "ए सी = नया सी()" कक्षा में एक स्थिर ब्लॉक पहले बनाया गया है और फिर अन्य स्थैतिक ब्लॉक निष्पादित किए जाते हैं। क्यूं कर?
एक के रूप में अलग रूप में, मैं तुम्हें 3 वर्गों या संभवतः सिर्फ 2 बस के रूप में आसानी से के साथ इस प्रदर्शन किया जा सकता था संदेह है - और बनाया घटनाओं की एक व्यापक सूची प्रदान करना आसान है। –