Special Singleton : class A{
}

class B extends A{
}

class C extends B{
}

A a1 = new A(); //Should work fine

A a2 = new A(); // Should throw an error if one instance is already created

B b1 = new B(); // Should work fine despite A instance is there or not

B b2 = new B(); // Should throw an error

C c1 = new C(); // Should work fine despite B instance is there or not

C c2 = new C(); // Should throw an error