Встречается на собеседованиях • сегодня
В чем разница между поведениями абстрактным классом и интерфейсом
Абстрактный класс может содержать реализованные методы, поля и конструкторы, а интерфейс — только константы и абстрактные методы (до Java 8). С Java 8 интерфейсы могут иметь default и static методы.
Ключевые отличия:
- Класс может наследовать только один абстрактный класс, но множество интерфейсов.
- Абстрактный класс подходит для общего состояния и поведения, интерфейс — для определения контракта.
Пример:
java
abstract class Animal {
protected String name;
public Animal(String name) { this.name = name; }
abstract void makeSound();
}
interface Swimmable {
void swim();
}
class Duck extends Animal implements Swimmable {
public Duck(String name) { super(name); }
void makeSound() { System.out.println("Quack!"); }
public void swim() { System.out.println(name + " is swimming"); }
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы