Насколько я понимаю, если проверка типов может быть выполнена во время компиляции, приведение типов будет выполнено во время компиляции и не повлечет за собой никаких накладных расходов во время выполнения.
Например
public Child getChild() {
Parent o = new Child();
return (Child) o;
}
Приведение типов выполняется во время компиляции или во время выполнения?
И есть ли какое-либо общее правило, чтобы решить, выполняется ли приведение типов компилятором javac или виртуальной машиной?