I have a subclass and I am overriding the inherited parent method: I am removing the throws clause from the method declaration.
Now, using polymorphism, the my insta
That has happened because assigning the SubB
instance to a
removes the knowledge that the instance is a SubB
. As an A
, a.foo()
can now (as far as the JLS is concerned) throw Exception
.
Compile-time type knowledge is based on the declared types of the variables rather than any (hypothetical) inferred types if the variable contents.