RSS

Deberes – Declarando clases (I)

14 Abr

Vamos a programar los siguientes casos:

  • Caso 1: Una clase con nivel de acceso paquete (Libro), una clase que la pueda extender (Comic) y una clase que no la pueda extender (Revista).
  • Caso 2: Cambiar el nivel de acceso de la superclase (Libro) para que la clase que no la pueda extender (Revista) ahora pueda hacerlo.

Para ver los ejercicios resueltos click en Leer más…

Caso 1:

Creamos en Eclipse un nuevo proyecto Clases, dentro de él un paqueteA y un paqueteB.
Dentro del paqueteA tendremos la clase Libro y la subclase Comic, las dos con visibilidad de paquete.
Dentro del paqueteB tendremos la clase Revista, que no podrá extender a la clase Libro por no tener acceso a ella (solo tienen acceso a ella las clases del paqueteA).

Creamos la clase Libro.java

Creamos la clase Comic.java

Creamos una clase Principal para comprobar que las dos clases anteriores funcionan bien.

Ahora creamos la clase Revista.java, vemos que no la podemos extender porque la clase Libro no es visible.

No cambia nada el hecho de que importemos la clase. Ya que esto se hace solamente para poder referirnos a la clase con un nombre más corto.

Caso 2: Para que Revista pueda acceder a Libro, no podemos cambiar su visibilidad a protected, como nos dice Eclipse, porque no es un modificador permitido para las clases de primer nivel. Tenemos que hacer a Libro public.

Una vez que hemos cambiado a public la clase Libro, ya no nos da fallo la clase Revista.


 
4 comentarios

Publicado por en 14 abril, 2011 en Deberes

 

Etiquetas: , , ,

4 Respuestas a “Deberes – Declarando clases (I)

  1. reynaldo

    28 julio, 2012 at 9:44 pm

    Excelente material gracias por compartirlo

     
    • Virginia Lopez

      2 agosto, 2012 at 2:16 pm

      Gracias Reynaldo! Un saludo!

       
  2. Andrés Felipe Moreno Torres

    8 May, 2012 at 7:09 pm

    Hola, confirmame una cosa. Si Revista hereda de Libro, por qué libro no puede ser protected.

    Siendo que la accesibilidad de Protected, es dentro del mismo paquete y las clases que heredan de ella…

     
    • comesapos

      22 May, 2012 at 1:56 pm

      En Java sólo las clases anidadas (inner class) pueden ser de tipo private o protected, además de public y por defecto (default – sin modificador).

      Las clases de nivel superior sólo pueden ser public o por defecto (default – sin modificador). Además, un archivo .java sólo puede poseer una clase public y debe tener el mismo nombre que ésta. De resto puede poseer todas las clases default que sean necesarias. Si no posee al menos una clase public, puede tener cualquier nombre.

       

Replica a Andrés Felipe Moreno Torres Cancelar la respuesta