Назад к вопросам
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();