Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvidas com código

Como a contagem de totalContas funciona nesse exercício, tendo em vista que não vejo nada que ligue o var totalContas a ContaCorrente, ContaPoupanca etc? É o fato dele herdar de Conta?

package br.com.alura.bytebank.modelo

var totalContas = 0
    private set

abstract class Conta(
    var titular: Cliente,
    val numero: Int
) {
    var saldo = 0.0
        protected set

    init {
        println("Criando conta")
        totalContas++
    }

    fun deposita(valor: Double) {
        if (valor > 0) {
            this.saldo += valor
@@ -23,4 +31,43 @@ abstract class Conta(
        }
        return false
    }
}

class ContaCorrente(
    titular: Cliente,
    numero: Int
) : Conta(
    titular = titular,
    numero = numero
) {

    init {
        totalContas++
    }

    override fun saca(valor: Double) {
        val valorComTaxa = valor + 0.1
        if(this.saldo >= valorComTaxa){
            this.saldo -= valorComTaxa
        }
    }
}

class ContaPoupanca(
    titular: Cliente,
    numero: Int
) : Conta(
    titular = titular,
    numero = numero
) {

    init {
        totalContas++
    }

    override fun saca(valor: Double) {
        if(this.saldo >= valor){
            this.saldo -= valor
        }
    }
1 resposta
solução!

Sim, apenas por ter herdado já executaria o init da classe conta, tanto contaCorrente como contaPoupanca recebem obrigatoriamente tudo aquilo que a super classe Conta tem, por isso o professor sempre diz pra termos cuidado ao usar herança.