Какой тип методов в Java не имеет реализации?

Ответ

Методы, не имеющие реализации (тела), — это абстрактные (abstract) методы.

Где они объявляются:

  1. В абстрактных классах:

    abstract class Animal {
        // Абстрактный метод — нет тела, только сигнатура.
        abstract void makeSound();
    
        // Обычный метод — имеет реализацию.
        void sleep() {
            System.out.println("Zzz...");
        }
    }
  2. В интерфейсах (до Java 8): Все методы интерфейса по умолчанию были public abstract.

Как они используются: Абстрактный метод обязан быть реализован (переопределен) в первом конкретном (неабстрактном) классе-наследнике.

class Dog extends Animal {
    // Реализация абстрактного метода.
    @Override
    void makeSound() {
        System.out.println("Гав!");
    }
}

Исключение (с Java 8): В интерфейсах появились методы default и static, которые имеют реализацию.

Ответ 18+ 🔞

А, ну вот, смотри, абстрактные методы, блядь! Это такие, которые как бы есть, а на самом деле нихуя нет. Как обещание позвонить, ёпта.

Где они, эти призраки, обитают:

  1. В абстрактных классах: Там они и живут, сука, как дома.

    abstract class Animal {
        // Абстрактный метод — объявил, а делать него хуй. За тебя сделают.
        abstract void makeSound();
    
        // А это уже нормальный метод, рабочий, не лентяй.
        void sleep() {
            System.out.println("Zzz...");
        }
    }
  2. В интерфейсах (в старые добрые времена): Раньше там все методы были по умолчанию public abstract, ядрёна вошь. Одна сплошная абстракция, пиздец.

И как с этим жить? А жить просто: первый неленивый ублюдок, который унаследует этот класс, обязан этот метод реализовать. Иначе компилятор ему ебло набьёт.

class Dog extends Animal {
    // Вот, добросовестный гражданин, переопределил. Молодец, пёс.
    @Override
    void makeSound() {
        System.out.println("Гав!");
    }
}

Но! Времена меняются, блядь. С Java 8 в интерфейсах завелись методы default и static — у них уже есть тело, они уже не голые. Так что теперь не всё так однозначно, в рот меня чих-пых.