Error al ejecutar este codigo de clases abstractas

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

Smileys
:);):(:D}:):P:O:?8):jawdrop::sick:
El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.
  • Textual smileys will be replaced with graphical ones.

Más información sobre opciones de formato

Captcha
Esta pregunta es para probar que el que escribe el comentario es un humano
6 + 6 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Tienda de música online