[....]

May 26, 2010 02:36

*ругаюсь нехорошими словами*... Извините, что так начинаю этот пост...просто ( Read more... )

Leave a comment

Comments 7

pavelakafoks May 26 2010, 00:50:53 UTC
Напиши тестик для проверки. Я вот цели как понял, програмку написал, вроде работает ( ... )

Reply

diana_phoenix May 26 2010, 10:34:03 UTC
ты пишешь на Си-пошарпанном, я пишу на Джаве. И у тебя все-таки неверный вывод на экран. Попробуй переписать main так:
Child_1 ch1 = new Child_1();
Child_2 ch2 = new Child_2();
Child_3 ch3 = new Child_3();

Console.WriteLine(ch1.Test());
Console.WriteLine(ch2.Test());
Console.WriteLine(ch3.Test());
Console.ReadLine();

Reply


pavelakafoks May 27 2010, 00:40:58 UTC
ага, затупил, вынес вверх, и получил то, о чём ты пишешь:

5
3
3

Поштудировав форумы с хелпом, нашёл:
"статические переменные не могут перекрываться в наследниках и всегда будут относиться к тому типу, в котором они объявлены"

Потыкал ещё, элегантного способа не нашёл - либо класс с переменными выносить отдельно и передавать по ссылке, и уже крутить внутри, либо к каким нибудь хитростям платформы прибегать, типа делегатов, ссылок (туда не копал).

Напиши потом какое решение применила.

Reply

diana_phoenix May 31 2010, 07:15:07 UTC
хранить в одном месте и передавать по ссылке, если такое понятие применимо к джаве.... все равно придется хранить динамчески, чтобы сохранять в хмл))))

Reply


f1avalanche August 22 2010, 07:29:11 UTC
Слегка уже поздновато, но всё же :) Я правильно понимаю, что ты хотела в классе иметь final поля, которые бы отличались для каждого из наследников?

abstract class Parent {
private final int property;

protected Parent(int property) {
this.property = property;
}
}

class Child1 {
private static final PROPERTY1 = 1;
public Child1() {
super(PROPERTY1);
}
}

Reply

diana_phoenix August 22 2010, 11:34:28 UTC
дело в том, что они являются неизменными с точки зрения конкретного экземпляра исследуемого мира и существа. Для пользователя - это параметры, задающиеся с клавиатуры. Вот так.

Решено было завести еще один класс Constants , хранящий базовые параметры, хранящийся в неком менеджере существ (раз он все равно есть), а при вызове конструктора менеджером экземпляр передается в качестве параметра без клонирования. При вызове конструктора типа Creature (Creature parent), ссылка на константы копируется у родителя.

То есть все вроде получилось)))

Reply

f1avalanche August 22 2010, 12:34:03 UTC
тоже вариант))

Reply


Leave a comment

Up