Скажем, у меня есть следующая настройка
class A {
B foo();
}
class C extends B {
}
// later
A a = new A();
C theFoo = (C)a.foo();
Мы знаем, что a.foo()
возвращает тип B.
Когда я делаю (C)a.foo()
, это
- Кастинг
a
для вводаC
, затем попытка вызватьfoo()
на нем? - Вызов
foo()
ona
и выдача результата для вводаC
?
Мне сложно определить и всегда просто играть на стороне осторожности с дополнительными круглыми скобками (это не плохая идея, для читаемости, но теперь мне любопытно)
Это относится к ObjectInputStream.readObject()
, но я не вижу, как это изменит поведение.