Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Haulmont-презентации Java / Haulmont. java_se_3.2.ppt
Скачиваний:
29
Добавлен:
16.03.2015
Размер:
660.99 Кб
Скачать

Наследование и сокрытие

констант

21• Продолжим пример, касающийся интерфейсов X и Y, и предположим, что объявлены ещё два

интерфейса: interface C {

String val = "Интерфейс C";

}

interface D extends X, C {}

Что теперь может означать выражение D.val

– обращение к целочисленной константе val

или строковому литералу val?

В подобных случаях мы обязаны явно оговаривать свои намерения – достаточно написать X.val или С.val

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Наследование, переопределение

и перегрузка методов

22Производный интерфейс наследует все методы базовых интерфейсов

Если метод, объявленный в производном интерфейсе, обладает теми же сигнатурой и типом возвращаемого значения, что и унаследованный метод, новое объявление переопределяет любое и все аналогичные объявления унаследованных методов

Как и при переопределении методов в процессе расширения класса, методу, переопределённому при наследовании интерфейса, не позволяется декларировать больше объявленных исключений, чем предусмотрено в исходном объявлении соответствующего метода

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Наследование, переопределение

и перегрузка методов

23• Если в составе интерфейса объявлен метод с тем же именем, но иным списком параметров, нежели в унаследованном интерфейсе, имеет место перегрузка

метода

Класс, реализующий интерфейс, должен предоставить конкретные варианты кода для каждой из перегруженных форм метода

Если объявленный в интерфейсе метод отличается от унаследованного только типом возвращаемого значения, при компиляции будет выдано сообщение об

ошибке

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Пустые интерфейсы

24• Некоторые интерфейсы не содержат объявлений каких-либо методов, а просто обозначают некоторое свойство или общий признак принадлежности будущих классов к некоторой группе

Примером такого интерфейса – их принято называть

пустыми, или интерфейсами-маркерами – может служить Cloneable, в составе которого отсутствуют объявления каких бы то ни было методов и констант

Интерфейс Cloneable, будучи реализованным в классе, относит этот класс к числу тех, в которых поддерживается механизм клонирования

К числу интерфейсов-маркеров, помимо упомянутого Cloneable, относится также интерфейс Serializable

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Абстрактный класс или

интерфейс?

25 Существует два главных различия между интерфейсами и абстрактными классами:

Интерфейсы обеспечивают инструментарий

множественного наследования, производный класс способен наследовать одновременно несколько интерфейсов. Класс может расширять

единственный базовый класс, даже если тот содержит только абстрактные методы

Абстрактный класс частично может быть реализован, он вправе содержать члены, помеченные как protected, и/или static и т.п. Структура интерфейса ограничена объявлениями public-констант и public-методов

без какой бы то ни было реализации

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Литература

26• Арнольд Кен, Гослинг Джеймс, Холмс Дэвид. Язык программирования Java. 3-е изд.: Пер. с

англ. – М.: Издательский дом «Вильямс», 2001. –

624с.: ил. ISBN 5-8459-0215-0 (рус.).

Хорстманн Кей С., Корнелл Гари. Java`2. Библиотека профессионала, том 1. Основы. 8-е издание.: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2008. – 816 с.: ил. ISBN 978-5-8459-1378-4 (рус.).

Гаврилов А.В., Дегтярёва О.А., Лёзин И.А., Лёзина И.В. Учебное пособие по языку Java. Часть 1. Самара: Издательство СНЦ РАН, 2010. –

176с. - ISBN 978-5-93424-508-6

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Соседние файлы в папке Haulmont-презентации Java