У меня есть следующий абстрактный класс:Класса литье неясность
public abstract class AbstractGroup {
private String name;
.
.
.
}
У меня есть две пустых классов, которые расширяют этот абстрактный класс:
public class GroupA extends AbstractGroup {
}
public class GroupB extends AbstractGroup {
}
Есть ли способ бросить следующий без получения ClassCastException
: (group
имеет тип GroupA
)
group = (GroupB)group;
Мне нужен экземпляр этого объекта, чтобы он стал GroupB
.
На самом деле вы ошибаетесь. Вы можете использовать только иерархию. Попробуйте это (отбрасывание), посмотрите, что произойдет: http://pastebin.com/iPrCZWGd. –
отбрасывание возможно, если у вас есть объект подкласса и ссылка суперкласса. – Ahmad
SomeMethod (SuperClass OBJ) { \t \t, если (OBJ InstanceOf SubClass) { \t \t \t \t SubClass subref = (Подкласс) OBJ; \t} } ...... Разве это неправда? ?? – Ahmad