У Java есть динамическая диспетчеризация метода, но это только одна диспетчеризация, основанная на типе времени выполнения объекта, метод которого вы вызываете. Не существует динамической диспетчеризации, основанной на типах аргументов во время выполнения, вместо этого метод (если есть несколько перегруженных методов на выбор) выбирается во время компиляции на основе объявленных типов.
foxi.spielen (hybrid)
blockquote>
foxi
, как известно,Fuchs
. У вас есть следующие перегруженные методы
- public String spielen (Hund h); (унаследовано от Hund)
- public String spielen (Fuchs f); (объявлено Фуксом)
hybrid
объявляется какHund
, поэтому будет вызван первый метод. Неважно, что это на самом делеFuchs
во время выполнения. Вы получите второй метод сfoxi.spielen((Fuchs)hybrid)
.Может быть, вы намеревались переопределить вместо перегрузки метода? Тогда это действительно напечатало бы ваш ожидаемый результат. Но этого не произошло, потому что для переопределения метода, вы должны точно соответствовать типам параметров. Если вы намереваетесь переопределить метод, вы должны использовать аннотацию
@Override
, которая предупредит вас о таких ошибках.
Я думаю, что Вы ищете, управление "Аккордеоном", вот сообщение abotu, как создать один из стопки средств управления Расширителем:
http://www.rooijakkers.net/Blog/post/2007/11/WPF-implementation-of-a-basic-Accordion-control.aspx
И для анимации смотрит на "Раскрывать" управление от bag-o-tricks Kevin в http://j832.com/bagotricks/
, я думаю, что существует даже анимированный шаблон управления Расширителем на основе Раскрывать управления в демонстрационном проекте.
Я использую Расширитель.
<Expander Header="Items" IsExpanded="False">
...
</Expander>
Мне это также нужно для моего приложения WPF, и лучшее, что я нашел, - это полнофункциональный элемент управления Accordion в Silverlight Toolkit:
alt text http: //www.sitechno. com / Blog / ct.ashx? id = a7c3c2d9-9446-4236-bc6e-c436427002ff & url = http% 3a% 2f% 2fwww.sitechno.com% 2fBlog% 2fcontent% 2fbinary% 2fWindowsLiveWriter% 2f10imageBinaryBinary% 2fWindowsLiveWriter% 2f10imageBarcart_2 [источник] код доступен здесь , а живая демонстрация здесь . Наверное, легко перенести на WPF. Там есть запись в блоге из 5 частей , написанная Руурдом Бёке, где это подробно обсуждается. В , часть 4 , он обсуждает, как изменить стиль аккордеона с помощью шаблонов, чтобы получить этот великолепный вид аккордеона:
(источник: sitechno.com )
(источник: ] ситечно. com )