Explain the difference between an interface and an abstract class in Java, and provide a scenario where you would choose one over the other.