Мне нужна помощь в понимании того, почему я получаю ClassCastException при попытке преобразовать ParentInterface в ChildInterface.
Пример кода
{ParentInterface P1}
{SampleClass P2 implements P1}
{ChildInterface C1 extends P1}
SampleClass sampleClass = new SampleClass();
ChildInterface childI = (ChildInterface) sampleClass;
Если быть точным, что я делаю [Реализация вышеуказанной логики]:
getInterface(){
return (ChildInterface)ParentInterfaceHelper.INSTANCE;
}
private static class ParentInterfaceHelper {
private static final ParentInterface INSTANCE;
static{
INSTANCE = new SampleClass();
}
}
я получаю сбои во время выполнения с исключениями
Исключение в основном потоке java.lang.ClassCastException:
Мое понимание:
Это исключение связано с тем, что я создаю объект, который реализуется ParentClass, поэтому ссылка относится к ParentInterface, а не к ChildInterface, и поэтому выполнение кода завершается сбоем во время выполнения. Я прав?
SampleClass
не связан сChildInterface
. Есть еще вопрос или это все, что вы хотели подтвердить? - person ernest_k   schedule 08.09.2020SampleClass
реализоватьChildInterface
- person ernest_k   schedule 08.09.2020implements ChildInterface
, посколькуChildInterface
уже расширяетParentInterface
. - person ernest_k   schedule 08.09.2020