2.42M
Категория: ПрограммированиеПрограммирование

Абстрактные классы

1.

• Абстрактные классы
• Иерархия наследования и
преобразование типов
• Интерфейсы
• Интерфейсы в механизме
обратного вызова
Сара Сериковна

2.

Абстрактные
классы
https://metanit.com/java/tutorial/3
.6.php
Shape
// Абстрактный класс Shape
public abstract class Shape
Абстрактный метод для
вычисления площади
public abstract double
calculateArea();
Общий метод для всех
фигур
public void display() {
System.out.println("Displaying
shape with area: " +
calculateArea()); } }

3.

Иерархия наследования и
преобразование типов
https://metanit.com/java/tutorial/3.10.php
Object
Суперкласс и подклассы
На вершине иерархии обычно
находится класс Object, от
которого напрямую или
косвенно наследуются все
другие классы.
Класс, от которого наследуются
свойства, называется
суперклассом. Классы,
наследующие эти свойства,
являются подклассами.
Преобразование "вверх"
(Upcasting)
Всегда безопасно и происходит
автоматически.

4.

Преобразование
"вниз"
(Downcasting):
• Преобразование
экземпляра суперкласса
обратно к типу
подкласса.
• Требует явного указания
и может привести к
ошибке
ClassCastException, если
объект не является
экземпляром целевого
подкласса.

5.

Интерфейсы
https://metanit.com/java/tutori
al/3.7.php
В Java класс может
реализовать несколько
интерфейсов, что позволяет
обойти ограничение на
множественное
наследование.
Поддержка
множественного
наследования
Разделение
определения и
реализации:
Позволяет разделить "что
делать" от "как это
делать".
Определение контракта:
Интерфейс определяет,
что класс должен делать,
но не то, как именно это
делать.
Роль в Java
Классы, реализующие
интерфейс, могут быть
обработаны полиморфно
как объекты этого
интерфейса.
Полиморфизм

6.

Интерфейсы в механизме обратного
вызова
01
Как интерфейсы используются для реализации
обратного вызова
Обратный вызов (Callback) - это механизм, при котором метод
класса A вызывает метод класса B, а класс B при определенных
обстоятельствах вызывает заранее определенный метод класса
A. В Java это часто реализуется с использованием интерфейсов.
02
Определение интерфейса для
Callback
Класс A реализует интерфейс, определяющий
метод(ы) обратного вызова.
https://metanit.com/java/tutorial/3.16.ph

7.

Задание -1 (40 балл)
Цель: Создать систему для управления различными типами сотрудников в компании.
Задача:
• Абстрактный класс Employee:
⚬ Создайте абстрактный класс Employee с общими свойствами (например, имя, идентификатор) и
абстрактным методом calculateSalary().
• Конкретные классы сотрудников:
⚬ Создайте несколько конкретных классов сотрудников (например, Manager, Developer, Intern),
наследующих Employee и реализующих calculateSalary() по-разному.
• Преобразование типов:
⚬ В демонстрационном классе создайте массив Employee и добавьте в него различные типы
сотрудников.
⚬ Пройдитесь по массиву и выведите информацию о зарплате каждого сотрудника.
• Расширенные возможности:
⚬ Добавьте в абстрактный класс метод displayEmployeeDetails() для вывода общей информации о
сотруднике.
⚬ Переопределите этот метод в подклассах для добавления специфической информации.

8.

Задание - 2 (40 балл)ЦЕЛЬ: РАЗРАБОТАТЬ СИСТЕМУ ДЛЯ УПРАВЛЕНИЯ УСТРОЙСТВАМИ В ДОМЕ.
Задача:
• Интерфейс SmartDevice:
⚬ Определите интерфейс SmartDevice с методами turnOn(), turnOff() и
getStatus().
• Конкретные устройства:
⚬ Реализуйте несколько классов конкретных устройств (например,
SmartLight, SmartTHERMOSTAT, SMARTDOORLOCK), КАЖДЫЙ ИЗ
КОТОРЫХ ИМПЛЕМЕНТИРУЕТ ИНТЕРФЕЙС SMARTDEVICE.
• ИНТЕРФЕЙС CONNECTIVITY:
⚬ СОЗДАЙТЕ ДОПОЛНИТЕЛЬНЫЙ ИНТЕРФЕЙС CONNECTIVITY С МЕТОДОМ
CONNECTTONETWORK(STRING NETWORKNAME).
⚬ НЕКОТОРЫЕ УСТРОЙСТВА ДОЛЖНЫ РЕАЛИЗОВЫВАТЬ КАК SMARTDEVICE,
ТАК И CONNECTIVITY.
• ТЕСТИРОВАНИЕ УСТРОЙСТВ:
⚬ В КЛАССЕ MAIN СОЗДАЙТЕ И ИНИЦИАЛИЗИРУЙТЕ РАЗЛИЧНЫЕ
УСТРОЙСТВА.
⚬ ВЫПОЛНИТЕ И ПРОВЕРЬТЕ РАЗЛИЧНЫЕ ОПЕРАЦИИ С УСТРОЙСТВАМИ,
ВКЛЮЧАЯ ПОДКЛЮЧЕНИЕ К СЕТИ.

9.

Задание - 5 (20 балл)
Азатов Радмир (1-вариант)
Аканиязов Ильхам (2-вариант)
Апкаликов Алексей (3-вариант)
Ашуров Мухаммад-Рассул (4-вариант)
Әділбеков Әлішер (5-вариант)
Галаев Миккаил (6-вариант)
Ерлан Нұрали (7-вариант)
Жумабеков Адлет (8-вариант)
Земцов Даниил (9-вариант)
Зинидинов Юрий (10-вариант)
Ибрагимов Александр (11-вариант)
Кеңес Саяналтай (12-вариант)
Кобжасар Данияр (13-вариант)
Куанышбек Аян (14-вариант)
Қашқынбай Ернұр (15-вариант)
Қуанышбай Нурболат (16-вариант)
Литовченко Тимур (17-вариант)
Морчик Давид (18-вариант)
Нарумов Ерасыл (19-вариант)
Орман Алан (20-вариант)
Тотолин Илья (21-вариант)
Хашимов Ислам (22-вариант)
Якупов Амир (23-вариант)

10.

Спасибо за
внимание!
English     Русский Правила