Qual é a diferença entre um método abstrato em Java e Kotlin?
sobes.tech IA
Resposta da IA
Em Java, um método abstrato é declarado numa classe abstrata e não possui implementação. A classe que contém um método abstrato deve ser declarada como abstracta, e todos os herdeiros são obrigados a implementar esse método, se não forem abstratos.
Em Kotlin, métodos abstratos também são declarados em classes abstratas, mas há uma diferença importante: em Kotlin, é possível declarar métodos com implementação em classes abstratas (open ou abstract), e interfaces podem conter métodos com implementação (métodos padrão). Um método abstrato em Kotlin é um método sem corpo, que deve ser sobrescrito em subclasses.
Exemplo em Kotlin:
abstract class Animal {
abstract fun makeSound()
fun sleep() {
println("Sleeping")
}
}
Aqui, makeSound é um método abstrato, sleep é um método com implementação.
Portanto, a diferença é que Kotlin é mais flexível na definição de métodos com implementação em classes abstratas e interfaces, enquanto Java exige que métodos abstratos não tenham implementação e estejam em classes abstratas ou interfaces com métodos padrão.