Gente realmente estou com muita dúvida em realizar heranças e sobrescrita de métodos... ao fazer esse código bati cabeça me soquei fiz de tudo mais continuo com dúvida. alguem poderia me ajudar, o objeto foi criar a super classe Carro e as sub-classes CarroAutomatico e Carro Manual.
Qual seria a forma correta, peço por favor ajuda pq estou quebrando cabeça!
A dúvida é: Se eu criasse velocidade e cambio na classe pai, ao encapsular, como eu iria fazer essa linha nas sub-classes:
this.velocidade += velocidadeAumentada;
Segue o código:
public class Carro{
private String cor;
private int portas;
public Carro(String cor, int portas){
this.cor = cor;
this.portas = portas;
}
public void Acelerar(){
}
}
//--------------
public class CarroManual extends Carro{
private int velocidade = 0;
private int cambio = 0;
public CarroManual(String cor, int portas) {
super(cor, portas);
}
public void Acelerar(int velocidadeAumentada, int cambio){
this.cambio = cambio;
this.velocidade += velocidadeAumentada;
if (this.velocidade <= 50 && this.cambio == 1){
System.out.println("Sucesso!");
}
else {
System.out.println("Falhou!");
}
}
public String toString(){
return "A velocidade é "+this.velocidade+" e a marcha atual é "+this.cambio+"";
}
}
//-----------------------------
public class CarroAutomatico extends Carro{
private int velocidade = 0;
private int cambio = 0;
public CarroAutomatico(String cor, int portas) {
super(cor, portas);
}
public void Acelerar(int velocidadeAumentada){
this.cambio = cambio;
this.velocidade += velocidadeAumentada;
if (this.velocidade <= 50){
this.cambio++;
System.out.println("Sucesso!");
}
}
public String toString(){
return "A velocidade é "+this.velocidade+" e a marcha atual é "+this.cambio+"";
}
}