![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Уж не знаю, наверное, это у меня от безграмотности, но каково ж было мое удивление, когда сей код не только откомпилировался, но еще и выполнился...
Для тех кто не успел понять чем я так удивлен. Во-первых, оказывается можно получить экземпляр абстрактного класса. Во-вторых, можно вызвать абстрактный метод у абстрактного класса (g.clearRect(0,0,5,5);). Лихо! Хотелось бы услышать точку зрения знатоков -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Это где это ты получил экземпляр абстрактного класса ? Если ты про Graphics - то почитай еще раз про полиморфизм. И проверь класс (реальный) того, что ты получил.
Запусти ка это.
|
|||
|
||||
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Выводится: class sun.java2d.SunGraphics2D
OKey тогда уж тем больший косяк. В доке написано BufferedImage#getGraphics() возвращает Graphics. Где есть хоть что - то, что в моем коде или в документации указывает на то, что BufferedImage#getGraphics() возвращает sun.java2d.SunGraphics2D? -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Нет. По сути это идея интерфейса. Т.е. какой-то реальный класс реально умеет рисовать на канве витмапа. Но он должен быть наследован от Graphics, чтобы все, кто его используют могли думать, что это Graphics. И не надо ничего приводить - все работает.
Все наследники могут "прикидываться" своими родителями, что бывает удобно. Как в данном случае. Это одна из фич ООП. Почитай что-нибудь на досуге |
|||
|
||||
| Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 24 Всего: 144 |
Royan, ты абсолютно, совершенно, напрочь не понимаешь, как ОО концепты реализованы в Jave. Без этого в Java-программировании просто нечего делать, потому что эти понятия используются на каждом шагу. Немедленно учить азы! Хорошим местом для старта будет евангелие для любого Java программиста - книга Брюса Эккеля Thinking in Java. Книга на самом деле валяется во многих местах в сети, в различных форматах. Не исключено, что есть и на русском. Надо просто поискать. Но иметь эту книгу надо обязательно. А вот читать - не обязательно. Можно пользоваться как справочником, то есть читать выборочно по мере необходимости. В данный момент тебе совершенно необходимо прочитать главу 7, Полиморфизм. Пока не прочтешь, даже не думай садиться что-либо кодировать |
||||
|
|||||
| Royan |
|
||||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Блин, а ведь я действительно тупой! Думал, что в С++ такая фича не прокатит, ан нет вот код:
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
На русском есть второе издание. Третье - только на английском (кажется). -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Ага. Здесь: http://www.rost.ru/~sergey/tij2.exe -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
![]()
|
| Правила форума "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. |