![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
w1nd,
млин ![]() всё вышел из ступора ![]() спасибо большое, спать могу теперь идти спокойно ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А вот с этого момента поподробней, как надо реализовывать в наследниках clone() если в суперклассе он реализован без использования Object.clone()? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Своим конструктором. -------------------- ![]() ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это понятно. Как быть уверенным, что приватные поля суперклассов инициализированны корректно? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
w1nd |
|
||||||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Уверенным быть можно, если известна реализация (или имеются соглашения на этот счёт). В таком случае я не вижу способа так реализовать clone() в наследнике, чтобы унаследованный конструктор суперкласса не работал. Разве что самому что-то напортачить:
В принципе, наличие конструктора копирования уже даёт основания полагать, что копирование посредством этого конструктора будет корректным. Так же нельзя быть полностью уверенным в корректной инициализации класса при использовании Object.clone(). Например, такой класс может создать проблемы наследникам:
Речь не о том, что такая реализация не совсем верна, а о том, что таких реализаций - море. Поэтому предпочитаю насаждать более простую/понятную/надёжную схему. К тому же, она значительно быстрее работает ![]() Вообще, состояние класса должно быть воспроизводимо, иначе в клонировании вообще не видно смысла. Это сообщение отредактировал(а) w1nd - 25.3.2008, 01:43 -------------------- ![]() ![]() |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |