Olá a todos, sou iniciante em Java e estou estudando pela apostila do Caelum que está me ajudando muito.
Observem o código abaixo:
[code]class Conta {
private double saldo;
void deposita(double valor) {
this.saldo += valor;
}
void saca(double valor) {
this.saldo -= valor;
}
double getSaldo() {
return this.saldo;
}
void atualiza(double taxa) {
this.saldo += this.saldo * taxa;
}
}
class ContaCorrente extends Conta {
@Override
void atualiza(double taxa) {
this.saldo += this.saldo * taxa * 2;
}
}
class ContaPoupanca extends Conta {
@Override
void atualiza(double taxa) {
this.saldo += this.saldo * taxa * 3;
}
}[/code]
Dúvidas:
- porque neste caso eu tenho que usar protected para acessar o atributo herdado de Conta? não posso utilizar o getSaldo no ContaGerente e no ContaPoupança?
- sempre será necessário utilizar protected para acessar as subclasses? uma super não iria andiantar né?
- quando eu uso private e quando eu uso protected? qual a diferença dos 2?
- qual a básica diferente entre Herança e Polimorfismo? Herança até deu pra entender que é onde você tem uma classe (mãe/pai) e tem as subclasses (filho) que herdam tudo o que tem da superclasse, mas Polimorfismo realmente ficou complicado de entender.
Obrigado a todos desde já.