Ok so I found a post on here that helped me out a little.
Say I have:
now say I make an Array of type Electronics
as I understand it if I try doing gadgets[0]. i would only get the methods in the Electronics class unless I casted it as a type Television.
Why then would you want to make an array that can contain multiple types? I mean it seems useful at first. I could have an array of electronics that contains televisions, computers, phones and so forth. But if I can't call the methods of these specific types why bother? In normal implementation do you cast it as the appropriate type every time? I could see this leading to mismatching problems pretty easily unless you are very careful.
I think I have the what happens part down I just am not sure about the reason why this is useful, why would I ever type a subclass object as a superclass if i can't access it's methods.
Forgive me if I get some terminology wrong this is my first week in learning
Java.