Not sure about your number 3.
Checked
Java Language Specification and found this listed:
From any array type SC[] to any array type TC[], provided that SC and TC are reference types and there is a narrowing conversion from SC to TC.
I added to your code to assign arrays of bananas to variables for arrays of fruits and vice versa. Trying to understand which one requires a cast took at while since Fruits implements Bananas and not vice versa.