what is the meaning of init method in objective c? : i am  new in objective c and from java background, i want to know what is the meaning of `init()` method/function in objective c in a base class while achieving inheritance ? 
Is this is a kind of constructor like in java ? and is this is essential to use only `init()` method for creating and using objects? can we use other methods also instead of using `init()`.

and at last why is the return type of the `init()` is `id` ?