Главная » Java, Структуры данных и алгоритмы » Абстрактные классы

0

содержат описания ттустых методов (то есть не содержащих тела Метода), Описания обычных методов и/или переменных. Таким образом, абстрактные классы занимают промежуточное положение между интерфейсами to полноценными классами. Подобно интерфейсам, нельзя сбзда^ь Экземпляр абстрактного класса. Реализация абстрактных методов класса происходит в его подклассе при условии, что этот подкласс не является абстрактным. Однако, как и обычные классы, абстрактный класс А может наследовать другой абстрактный класс, может порождать другие абстрактные и конкретные классы. В конечном итоге необходимо описать класс, который не является абстрактным и расширяет (наследует) абстрактный суперкласс, и именно в этом новом классе происходит реализация абстрактных методов. Таким образом, в абстрактных классах используется тип наследования — определение, хотя разрешены также конкретизация и расширение.

Ранее приводились примеры абстрактных классов. В частности, числовые Java-ютссы (представленные в табл. 1.2) конкретизируют абстрактный класс jav&.lang.Nurribef. Каждый конкретный числовой класс, например java.lang.Integer или java.lang.Double, является наследником абстрактного класса java.lang.Number и задает необходимые данные для выполнения абстрактных методов суперкласса. В частности, методы intValue(), floatValue(), doubleValue и longValue — абстрактные и описаны в классе java.lang.Number. Каждый конкретный класс конкретизирует детали реализации данных методов.

Источник: Гудрич М.Т. Г93 Структуры данных и алгоритмы в Java / М.Т. Гудрич, Р. Тамассия; Пер. с англ. A.M. Чернухо. — Мн.: Новое знание, 2003. — 671 е.: ил.

По теме:

  • Комментарии