Classes (top-level)

CasoO que faz
abstract classNão pode ser instanciada; pode ter métodos abstratos e concretos; pode ser herdada
final classNão pode ser herdada; métodos não são final por padrão
classClasse concreta, pode ser instanciada e herdada

Classes (nested)

CasoO que faz
static classClasse interna que não depende de instância da classe externa
final classClasse interna que não pode ser herdada
abstract classClasse interna não instanciável, pode exigir implementação

Métodos em classes

CasoO que faz
abstract methodNão tem corpo; obriga subclasses a implementar
final methodPode ser herdado, mas não sobrescrito
static methodPertence à classe; não participa de polimorfismo
static final methodMétodo de classe que não pode ser ocultado novamente
methodMétodo normal, pode ser sobrescrito

Interfaces

CasoO que faz
interfaceDefine um contrato; não pode ser instanciada
abstract interfaceRedundante; interface já é abstrata

Métodos em interfaces

CasoO que faz
abstract methodDeclara método que deve ser implementado
default methodMétodo com implementação que pode ser sobrescrito
static methodMétodo utilitário da interface; não é herdado

Atributos em interfaces

CasoO que faz
static final fieldConstante pública compartilhada