Eu implementei uma interface (e funcionou), porém gostaria de saber se dessa maneira é "correta" ou não. Vou colocar somente alguns trechos importantes...
interface Transferivel {
fun transfere(valor: Double, contaDestino: Conta)
}
abstract class Conta(internal val titular: String = "", protected val conta: Int = 0) : Transferivel {
class ContaSalario(
titular: String,
conta: Int
) : Conta(
titular = titular,
conta = conta
) {
override fun saca(valor: Double, taxa: Double) {
//Comentei esse trecho
}
override fun transfere(valor: Double, contaDestino: Conta) {
println("Esse tipo de conta não permite transferência")
}
}
E da classe ContaCorrente não vou postar pois fiz o tratamento adequado para o usuário realizar uma transferência.. Eu vi como você fez no github mais quis usar uma abordagem usando interface.