Sintaxis de la declaración de un clase:
modificador class NombreClase [extends SuperClase]
Una clase en Java puede admitir los siguientes modificadores (uno o más) en su declaración:
- public
- abstract
- final
public
- Pueden ser accedidas por otras clases ya sea en el mismo paquete o en otro distinto. Las clases public son las únicas que pueden ser accedidas desde otros paquetes.
- Toda clase public debe ser declarada en un fichero con el mismo nombre de la clase.
OBS: De esto se deduce que en un fichero .java solo puede haber una clase con el modificador public.
asbtract
- No pueden ser instanciadas, dicho de otra manera, no se pueden crear objetos de una clase declarada como abstract.
- Su finalidad es que se puedan declarar subclases de estas que redefinan los métodos declarados en la clase abstract. No necesariamente todos los métodos de una clase abstract son métodos abstract, puede tener uno o mas así como también ninguno.
- Si una clase contiene un método abstract entonces la clase deberá ser indicada como abstract también, de lo contrario se generará un error de compilación.
final
- No pueden generarse subclases de una clase declarada como final.
- Tiene una finalidad importante en las declaraciones de clases que acceden a recursos del sistema operativo, ya que declararlas como final impide que los métodos puedan ser redefinidos con algún fin perjudicial al usuario.
Una clase puede contener más de un modificador, ejemplo:
public abstract ClaseUno{ } ;
public final ClaseDos{ } ;
asbtract final ClaseTres{ }; // Esto ciertamente no tiene ningún sentido por lo dicho anteriormente
