Hola que tal.
Bueno creo que se me olvido mencionarlo en el primer post. El problema esta en que no puedes repetir dos constructores exactamente iguales osea que reciben los mismos parametros. Mira:
Este constructor:
public Perro
(String name,
int alt
){ // aqui me hace problema"int alt" this.name = name;
this.alt = alt;
}
Y este otro:
public Perro
(String name,
int patas
) { // y aqui tambien "int patas" this.name = name;
this.patas= patas-1;
}
Los dos reciben como Parámetros un String y un entero, entonces si instanciamos dos Objeto:
Perro perro = new Perro("zenzi", 12);
Perro perro = new Perro("cheroke", 4);
Entonces Java no sabrá a cual de los dos constructores te estas refiriendo, si al que setea las patas o al que setea la altura. Java no tiene manera de saber cual de los dos constructores usar. Te sugiero que solo hagas dos constructores que seteen los atributos más importantes, y el resto de atributos sean seteados con los setters.
Ahora en esta parte:
public void setPatas (int asignarnumerodepatas){
int asignarnumerosdepatas = 0;
this.patas = asignarnumerosdepatas;
}
Fíjate que le pasas un parámetro que es el número de patas, pero justo antes de asignarlo le pones un valor de 0, esto hará que el número de patas siempre sea 0 es suficiente haciendolo así:
public void setPatas (int asignarnumerodepatas){
this.patas = asignarnumerosdepatas;
}
Por ultimo recuerda poner el código dentro de las etiquetas GeSHi para que se vea mejor:
Saludos