Junior — Middle
Was ist der Unterschied zwischen Variablen, die in einer Schnittstelle deklariert sind, und Variablen in einer abstrakten Klasse?
sobes.tech KI
Antwort von AI
В Java переменные, объявленные в интерфейсе, по умолчанию являются public static final — то есть это константы, доступные без создания экземпляра, и их нельзя изменить.
В абстрактном классе переменные могут быть любого модификатора доступа, не обязательно final или static. Они могут быть экземплярными (каждый объект имеет свою копию) или статическими. Абстрактный класс позволяет хранить состояние, а интерфейс — только константы.
Пример:
interface MyInterface {
int CONST = 10; // public static final по умолчанию
}
abstract class MyAbstractClass {
protected int value; // экземплярная переменная
public static final int CONST = 20; // константа
}