Итак, я играю с кастингами ... и у меня, похоже, проблемы.Попытка понять литье и наследование
class Rabbit implements Cloneable {
private int r;
public Rabbit(int y) {
r= y;
}
public Object clone() {
Object result = new Rabbit(this.r);
return result;
}
class Bunny extends Rabbit {
private int b;
public Truck(int z) {
super(z);
b = z;
}
public Object clone() {
Object result = super.clone();
(Bunny) result).b = this.b;
return result;
}
Почему я продолжаю получать классное исключение во время реализации?
Вы не показываете метод 'main', поэтому невозможно сказать, как вещи вызываются. –
Нельзя использовать имя метода 'clone' для ваших методов, так как это предопределенный метод Object. –
Догадывается, что ваш 'main' создал Bunny, а затем назвал его« clone ». Это было бы каскадом к «клону» Кролика, который создал бы нового Кролика и вернул его. Затем вы пытаетесь обращаться с возвращенным кроликом как с зайчиком, поэтому исключение. –