static
и abstract
могут использоваться вместе для вложенных классов , например,
class A {
static abstract class B {
abstract void someMethod();
}
}
B
- это static
вложенный класс это требует конкретных подклассов для реализации someMethod()
.
, но не может использоваться вместе для методов , например
static abstract void someMethod(); // compile error
Конечно abstract
и final
могут не используются вместе - такая комбинация была бы бессмысленной.
Использование static abstract class
Подходящее использование static abstract class
было бы для узловых объектов, которые использует только ваш класс , например, класс, представляющий запись на карте (например, java.util.Map.Entry
, который является interface
, но мог бы быть stati c абстрактный класс), или класс для узла LinkedList
, но тот, где реализация оставлена для реализации класса включения, который также использует и предоставляет реализации вложенного класса, расширяя его тоже.