Do i have this essentially right? (too much studying I am not second guessing myself)
Let's say
Class A {}
Class B extends A{}
Class C extends B{}
In function arguments you can pass to the method doIt(B b) either a B or a C, not an A
If you're returning an object in a function
public B doIt()
you can return a C, but not an A
If when you are using variables you can do:
A a = (A) new B() //need a cast?
B b = new B()
C c =new B()
also if (lets say all the classes had the same functions) there are any static methods, or if there are variables in the functions, then when you call a.getStaticMethod you actually use the values in class a, not b, or c not B, but if the overridden methods are not static, then we would use the b functions and all three would return the same value?
Access modifiers can only go "more public"
but exceptions you can only through teh same exception of a subclass correct? nothing new?
Thanks, it's getting late