![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Привет.
Решил плотно заняться изучением Java по документациям к сертифицированию. Попался один примерчик, я его сейчас воспроизвёл, и понял, что я чего-то не до понимаю в ООП. Код: Test.java
AbstractTest.java
Не понимаю, по каким законам Java, в каждом классе: Test1, Test2, Test3, переменная strings имеет нужные значения? Я ожидал, что там должны быть все значения вместе, но никак не такого правильного поведения ![]() Почему и как это происходит? ![]() Добавлено @ 19:20 Сразу скажу, не нужно мне говорить, что методы print одинаковы, что его можно было тоже сделать единым и вынести в базовый класс. Это не суть вопроса. Суть именно в переменной String[] strings, почему она ведет себя так умно ? ![]() Это сообщение отредактировал(а) Samotnik - 23.11.2011, 20:06 |
||||
|
|||||
jGorets |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.7.2010 Репутация: нет Всего: нет |
А чего в этом коде особо непредсказуемого?
1. ты создал 3 одинаковые класса (на практике можно было бы обойтись одним, а в конструкторе держать его имя) 2. передал в них переменные (массив) 3. создал коллекцию в которую передал все экземпляры объектов 4. перебрал их и у каждого вызвал метод print(), который выводит все элементы своего массива UPD.
для каждого класса выделяешь место и "сообщаешь" им, что они реализация абстрактного класса, т.е. у них у всех будет свой экземпляр переменных. Другое дело, если бы ты extend -ил абстрактный класс, но в яве множественное наследие запрещено Это сообщение отредактировал(а) jGorets - 23.11.2011, 21:18 |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
что значит "все значения вместе"? по каким причинам ты ожидал чего-то другого? покажи язык, где происходит так, как ты ожидал Добавлено через 2 минуты и 22 секунды
что значит "если бы экстендил", если не
? и при чем тут множественное наследование? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |