Sobes.tech
Back to questions
Junior — Middle
97

Какое отличие между методом по умолчанию и статическим методом в Java?

Answer from AI

sobes.tech AI

Метод по умолчанию (default method) в Java — это метод интерфейса с реализацией, который может быть переопределён в классах, реализующих этот интерфейс. Он позволяет добавлять новые методы в интерфейсы без нарушения существующего кода.

Статический метод (static method) в интерфейсе или классе принадлежит самому интерфейсу или классу, а не экземпляру. Его можно вызвать без создания объекта, через имя интерфейса или класса.

Основные отличия:

  • Контекст вызова: default метод вызывается на экземпляре, static — на интерфейсе/классе.
  • Наследование: default методы могут быть переопределены в классах, static — нет.

Пример:

interface MyInterface {
    default void defaultMethod() {
        System.out.println("Default method");
    }
    static void staticMethod() {
        System.out.println("Static method");
    }
}

class MyClass implements MyInterface {}

public class Test {
    public static void main(String[] args) {
        MyClass obj = new MyClass();
        obj.defaultMethod(); // Вызов default метода
        MyInterface.staticMethod(); // Вызов статического метода
    }
}