6
I have these builders:
//1st Constructor - Create bike with a new frame
public Motociclo (String marca, String modelo, float peso, int robustez) {
//Nivel 2
this.marca = validarMarca(marca);
this.modelo = validarModelo(modelo);
this.quadro = new Quadro(peso, robustez);
}
//2º Construtor - Criar mota com um quadro existente
public Motociclo (String marca, String modelo, Quadro quadro) {
//Nivel 2
this.marca = validarMarca(marca);
this.modelo = validarModelo(modelo);
this.quadro = quadro;
}
//3º Construtor - Criar mota com um novo quadro, que tem cor
public Motociclo (String marca, String modelo, float peso, int robustez, Cor cor) {
//Nivel 3
this.marca = validarMarca(marca);
this.modelo = validarModelo(modelo);
this.quadro = new Quadro (peso, robustez, cor);
}
//4º Construtor - Criar mota com um quadro existente e um numero de quilometros
public Motociclo (String marca, String modelo, int quilometragem, int numeroRevisoes, Quadro quadro) {
//Nivel 4
this.marca = validarMarca(marca);
this.modelo = validarModelo(modelo);
this.quilometragem = quilometragem; //se for uma mota e segunda-mão, os quilometros não seram 0.
this.numeroRevisoes = 0;
this.quadro = quadro;
When we create a new attribute, for example mileage, it is mandatory to put it in the other builders previously created or is optional?
Is that in the solution of this exercise every time my teacher creates a new attribute he places it on all builders.
Just as nomenclature, this technique has a name: chaining constructor (chaining of builders).
– StatelessDev
In this case polymorphism has no part in the subject. It is more because of the "overloading".
– Bruno Costa