default используется в интерфейсах для объявления метода с реализацией по умолчанию. Это позволяет интерфейсам эволюционировать, не нарушая совместимость с уже существующими реализациями.
В switch-операторах default определяет блок кода, который выполняется, если не совпал ни один case.