Although that is true, that is not the question. I am casting from one interface to another so neither can be final.
Java almost always allows this without complaint from the compiler because there is no way for it to know if the underlying class (the compiler has no idea what that class might be) implements both interfaces or not. With one exception.
Hint: There is one case where the compiler knows that the underlying class can't possibly implement the two interfaces involved in the casting. Remember that the compiler has no iea what the underlying class is because we are casting one interface to another. So what is it about the interfaces that make them not compatible for casting?