Назад к вопросам
Junior
68
questionbank
В чем разница между классом, объектом и интерфейсом в Java?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Класс – это шаблон (blueprint) для создания объектов, определяющий их состояние (поля) и поведение (методы).
Объект (экземпляр класса) – это конкретное воплощение класса в памяти с уникальным состоянием.
Интерфейс – это контракт, полностью абстрактный тип, который определяет набор методов, которые должны быть реализованы классами, его имплементирующими.
| Свойство | Класс | Объект | Интерфейс |
|---|---|---|---|
| Сущность | Шаблон | Экземпляр класса | Контракт |
| Состояние | Могут иметь поля (состояние) | Имеет конкретные значения полей | Поля только статический final |
| Поведение | Могут иметь методы (поведение) | Выполняет методы, определенные классом | Определяет сигнатуры методов |
| Абстрактность | Могут быть абстрактными | Не абстрактны | Полностью абстрактны |
| Множественное наследование | Нет | Нет | Да (множественная имплементация) |
| Создание | Создается с помощью ключевого слова class |
Создается с помощью ключевого слова new |
Создается с помощью ключевого слова interface |
Пример:
// Класс: шаблон для создания автомобилей
class Car {
String model; // Поле (состояние)
// Метод (поведение)
void start() {
System.out.println(model + " started.");
}
}
// Объект: конкретный автомобиль
Car myCar = new Car(); // Создание объекта
myCar.model = "Toyota"; // Присвоение состояния
myCar.start(); // Вызов поведения
// Интерфейс: контракт для объектов, которые могут ездить
interface Drivable {
void drive(); // Определяет сигнатуру метода
}
// Класс, который имплементирует интерфейс
class Truck implements Drivable {
@Override
public void drive() {
System.out.println("Truck is driving.");
}
}
// Пример использования интерфейса
Drivable vehicle = new Truck();
vehicle.drive();