Hola,
Estoy intentando ejecutar este código de clases abstractas pero siempre me devuelve el mismo error: Exception in thread "main" java.lang.NoSuchMethodError: main
Por lo que he encontrado en internet, este error es porque está mal definida la clase main pero por más que miro el código donde lo he copiado no encuentro el fallo.
abstract class Animal {
String nombre;
int patas;
public Animal (String n, int p){
nombre = n;
patas = p;
}
abstract void habla();
//metodo abstracto que debe ser redefinido por las subclases
}
class Perro extends Animal {
//la clase perro es una subclase de la clase abstracta animal
String raza;
public Perro (String n, int p, String r){
super(n,p);
raza=r;
}
public void habla(){
// este metodo es necesario redefinirlo para poder instanciar
// objectos de la clase perro
System.out.println("Me llamo " +nombre+": GUAU, GUAU");
System.out.println("mi raza es "+raza);
}
}
class Gallo extends Animal{
// la clase gallo es una subclase de la clase abstracta animal
public Gallo (String n, int p){
super (n,p);
}
public void habla(){
// este metodo es necesario redefinirlo para poder instanciar
//objetos de la misma clase
System.out.println("Soy un gallo, Me llamo "+nombre);
System.out.println("kikirikiii");
}
}
class Abstracta {
public static void main (String argumentos[]){
Perro toby = new Perro("toby",4,"San Bernardo");
Gallo kiko = new Gallo("kiriko",2);
kiko.habla();
System.out.println();
toby.habla();
}
}¿Me podeis ayudar?
Gracias
Ricky
Comentarios
Hola Ricky, El código es
Hola Ricky,
El código es correcto, me temo que el error que estás cometiendo es darle un nombre diferente al archivo.
Me refiero a que el nombre del fichero que debe contener ese código debe ser Abstracta.java y creo que no lo tiene.
--
saludos
cyfuss
Enviar un comentario nuevo