-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
49 lines (45 loc) · 2.96 KB
/
Copy pathMain.java
File metadata and controls
49 lines (45 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import pets.*;
/**
* === Пример использования ООП на Java ===
*
* В этом проекте показаны основные принципы объектно-ориентированного программирования:
*
* 1. Наследование (extends):
* - Классы Cat и Dog наследуют Animal и получают общие методы (eat, sleep).
*
* 2. Полиморфизм (разные реализации методов):
* - Оба питомца по-разному реализуют makeSound() и play().
*
* 3. Инкапсуляция (private поля + публичные геттеры):
* - Имя и возраст скрыты внутри классов, доступ к ним через getName() и getAge().
*
* 4. Абстракция (интерфейс PetActions):
* - Задает "договор", который обязаны выполнять все питомцы (методы getName, getAge, makeSound, play).
*
* В итоге: Cat и Dog имеют общее (от Animal) и обязательное (из PetActions),
* но каждый реализует свои уникальные особенности.
*/
public class Main {
public static void main(String[] args) {
System.out.println("=== Кот (наследование + интерфейс) ===");
// Создаём объект кота, передаём имя и возраст в конструктор
Cat cat = new Cat("Барсик", 3);
// Используем методы кота
System.out.println("Имя: " + cat.getName()); // Получаем имя
System.out.println("Возраст: " + cat.getAge()); // Получаем возраст
cat.eat(); // Метод из родительского класса Animal
cat.sleep(); // Метод из родительского класса Animal
cat.makeSound(); // Реализация метода из интерфейса PetActions
cat.play(); // Реализация метода из интерфейса PetActions
System.out.println("\n=== Собака (наследование + интерфейс) ===");
// Создаём объект собаки
Dog dog = new Dog("Шарик", 5);
// Используем методы собаки
System.out.println("Имя: " + dog.getName()); // Получаем имя
System.out.println("Возраст: " + dog.getAge()); // Получаем возраст
dog.eat(); // Метод из родительского класса Animal
dog.sleep(); // Метод из родительского класса Animal
dog.makeSound(); // Реализация метода из интерфейса PetActions
dog.play(); // Реализация метода из интерфейса PetActions
}
}