- •А Б СТРА К ТН Ы Е К Л А ССЫ , И
- •Абстрактны е классы
- •Свойства абстрактного класса
- •Предназначение абстрактны х классов
- •Абстрактны й метод
- •Влож енны е классы
- •Примеры классов
- •Классы -элементы классов
- •Локальны е классы
- •Анонимны е классы
- •Пример анонимного класса
- •Свойства влож енны х классов
- •Создание объектов внутреннего класса
- •Создание объектов влож енны х статических
- •Доступ к объекту внеш него класса (this)из внутреннего
- •Имя ф айла с байт-кодом влож енного класса
- •Интерф ейсы
- •Использование интерф ейсов
- •Элементы интерф ейса
- •Поля интерф ейса
- •М етоды интерф ейса
- •Влож енны е классы и интерф ейсы -элементы
- •М нож ественное наследование интерф ейсов
- •Реализация интерф ейса
- •Реализация интерф ейсов и расш ирение класса
- •О ператор instanceofдля интерф ейсов
- •Частичная реализация интерф ейса
А Б СТРА К ТН Ы Е К Л А ССЫ , И Н ТЕРФ ЕЙ СЫ .
В Л О Ж ЕН Н Ы Е К Л А ССЫ , А Н О Н И М Н Ы Е,
Абстрактны е классы
Класс объявленный со спецификатором abstract
Может содержать абстрактные методы (методы без реализации).
abstract class A { abstract void m();
}
Свойства абстрактного класса
Нельзя создать экземпляр, но можно объявить переменную данного типа
Может иметь конструкторы
Может содержать обычные методы
Предназначение абстрактны х классов
Интерфейс к семейству классов.
База для реализации полиморфизма.
Неабстрактные потомки обязаны реализовать абстрактные методы.
Абстрактны й метод
Метод, который не содержит реализации.
Обязан быть объявлен со спецификатором
abstract
public abstract void m();
Влож енны е классы
Элементы класса
статические
нестатические
Локальные
анонимные
с указанием имени
Примеры классов
class A { // класс верхнего уровня void m(SomeClass p) {…}
class B {} // класс элемент класса void m() {
class C {} // С – локальный класс
m(new SomeClass() { // ан. класс
});
}
}
Классы -элементы классов
Могут иметь модификаторы/спецификаторы:
abstract
static
final
private/protected/default/public
Локальны е классы
Классы, объявленные внутри методов, конструкторов, блоках инициализации.
Могут быть: abstract, final
Уровень доступа - default, по умолчанию, ограничен телом блока, в котором объявлен класс.
Анонимны е классы
Класс, который не имеет имени.
Всегда расширяет класс или реализует интерфейс.
Используется при создании объектов.