how could this method return an A instance which might contain a super type of Number?

No it can't. Since the method's return type is A<? super Number>, this method can return only an instance of type A<Number> as anything down that hierarchy (eg. A<Integer>) won't fit the return type and anything up the hierarchy can't be declared/instantiated (eg. new A<Object>() would result in a compile time error)...

i was facing with the same problem which was asked by Leon. But now i am cleared with it your(ankit) explanation.

My next problem is about the generic type declaration of method <M>

i am writing what i think about the method tell me whether i am right or wrong..

<M> means a new generic for this method whose type is determined through the value we pass into this method.A<? extends Number> says that this method can return any object which is below the heirarchy of Number, same is said by the class A.so,there is no problem.
i am not able to grasp the concept which is written between the paranthesis.

Since the class A can be typed Number or its sub-classes, so restrictions will apply to M based on that. M can be a sub-class of Number like Integer or Number itself. So you can for example pass the method A<? super Integer> in which case M will resolve to Integer. The actual implications of what M resolves to will be easier to understand if you take a collection class into consideration instead of A...

As I understand A<? extends Number> in the method declaration is a type of a return method, am I wrong?
But what is <K> (again I'm talking about the method), why do we need that, especially in brackets? Where is it comes from?
Can you give an example that might help me ?