This is another just-another-informal-explanation:
For me it was easiest to remember if you think about is-a-relationship.
Objects of class Sub is-a Base?
Thats true!!!
Objects of class Base is-a Sub?
Thats NOT true!!!
Class Sub is more than a Base. Its an extended Base. So you cant assign a class Sub reference variable to a class Base object.
The other case is valid:
You can assign a class Sub Object to a class Base reference variable, because a Sub-Object is-a (extended) Base object.
Axel