2013-11-18 5 views
0

У меня есть класс, который расширяет другой класс и реализует один интерфейс, так что теперь будет ссылочным типом класса. Теперь я получаю ClasscastException, если я Я пытаюсь преобразовать базовый тип в дочерний тип.Как ссылаться на класс, который расширяет класс и реализует интерфейс

Например

public class Child extends Parent implements SomeInterface 
{ 

} 

SomeInterface childObject = new Child(); 
childObject2 = (Child)childObject; 

или

Parent p = new Child(); 
childObject2 = (Child)p; 

в обеих случаях я получаю class cast exception

+1

вы можете разместить StackTrace? – Renjith

+0

Я не видел ошибок в приведенном выше коде. Все, что действительно у вас сделало. Поместите свой полный стек – Ashish

ответ

0

Вы не можете привести объект подкласса к superclass.As суперклассу имеет обобщенные характеристики в то время как подкласс имеет особые характеристики.

SuperClass sup = (SuperClass) new SubClass(); 
    SubClass sub1 = (SubClass) sup; 

Вы можете refere: Casting super class to sub class

Смежные вопросы