|
Java. объектно-ориентированное программирование с интерфейсамиРезультат выполнения программы: Транспорт направляется в Вражий Порт. Транспорт направляется в Вражий Порт. Транспорт направляется в Вражий Порт. Корабль направляется в Вражий Порт. Корабль направляется в Вражий Порт. 5 отрядов десантировано. 6 отрядов десантировано. 7 отрядов десантировано. Корабль бомбардирует цель. Корабль бомбардирует цель. Концепция интерфейсов добавляет полиморфизму второе измерение: Иерархический полиморфизм в стиле C++, основанный на приведении к базовому типу классов и /или интерфейсов (см. TestShips); Полиморфизм экземпляров, основанный на разных реализациях одного и того же интерфейса (см. INumber). Наследование имеет два аспекта: "быть похожим (внешне) на" - наследование типа, поведения; "быть устроенным как" - наследование реализации. Наследование реализации не означает наследование типа! В практике это не встречается, потому что и в С++ и в Java невозможно наследование реализации без наследования интерфейса. В C++ интерфейс и класс неотделимы друг от друга. В Java интерфейс от класса отделить можно, но класс от интерфейса - нельзя. В С++ и в Java совокупность общедоступных (public) методов неявно образует интерфейс данного класса. В силу этого наследование класса автоматически означает как наследование реализации, так и наследование интерфейса (типа). Очевидно, что наследование структуры данных и программного кода не определяет тип потомка. Например, абстрактные методы являются частью интерфейса и не являются частью реализации. Если бы можно было исключить их из наследования, то мы получили бы наследование реализации без сохранения типа. Обратите внимание, что в DblNumber и IntNumber наследования реализации нет. Поэтому иерархия классов не используется. 4. Обобщение Продолжение статьи: ч.1 Продолжение статьи: ч.2 Продолжение статьи: ч.3 Продолжение статьи: ч.4 Продолжение статьи: ч.5 Продолжение статьи: ч.6 Продолжение статьи: ч.7 Продолжение статьи: ч.8 Продолжение статьи: ч.9 Другие статьи по теме: - Java-приложение: заглянем внутрь- практическое введение в программирование на javascript - возможности языка java - Java: русские буквы и не только... - учим java. этап первый: подготовительный |
|
2006-2024 © SMTI.RU Главная страница | Связаться с нами |