Thank you for your for prompt response, but there's some concept that i need to make sure.
1)In Line 21 the statement
A[] aa2=(A[])ra1;
is not givin error. That statement attempt to cast Array to other type of array. But the ra1 is an array of runnable.
and in line 21 it tryin to cast an array to other type of array which is not in the same hierarchy type. So, the it a cast to a class type not an interface(array tipe which is object).
2)It still not makin any sense to me. In line 24, the statement doing a cast to array type not to interface type, isn't it?
It should be an error, at least that what i think right now.
Please help me to understand this really new stuff for me.