Herencia
La herencia es uno de los conceptos básico de la Programación Orientada a Objetos. La funcionalidad de una clase existente se puede extender al crear una nueva clase que se deriva de ella. La clase derivada hereda las propiedades de la clase base y es posible agregar o reemplazar métodos y propiedades según sea necesario. Para poder utilizar la herencia en JAVA utilizamos la palabra reservada extends y especificamos la clase a la cual vamos hacer herencia. La clase base o clase hija, siempre debe estar en el extremo izquierdo en la declaración de clase, y la clase Padre que es de la cual vamos hacer herencia debe estar en el extremo derecho de la declaración de nuestra clase.Como Java, no admite herencia múltiple, lo que significa que las clases no pueden heredar más de una clase. Sin embargo, se pueden utilizar interfaces para ese propósito, de la misma manera que en Java.
En el siguiente código definimos una clase Personal con sus atributos y métodos correspondiente
public class Personal { public String codigo; public String nombre; private int edad; protected String cargo; public Personal() { } public String getCodigo() { return codigo; } public void setCodigo(String codigo) { this.codigo = codigo; } }
Luego nos creamos otra clase a la cual llamaremos Personal_Publico y vamos a heredar los atributos y metodos de la clase Personal de la siguiente forma
public class Personal_Publico extends Personal{ private int año; public Personal_Publico() { super(); this.nombre = "Hugo"; this.codigo = "CD001"; this.cargo = "Presidente"; this.año = 2015; } }De esta forma podemos aplicar la herencia en nuestra clase Personal_Publico, y ademas hacer usos de los atributos o métodos que tienen nuestra clase Padre Personal, de acuerdo el nivel de acceso que le demos a nuestro atributos, por ejemplo.
private = significa que no podemos acceder a ese atributo o método desde ninguna clase ni haciendo herencia
public = significa que vamos poder acceder a ese atributo desde cualquier clase y podemos aplicarle la herencia
protected = significa que no podremos acceder a ese atributo desde otra clase pero si podemos aplicar la herencia
Interfaces (implements)
Una interfaz es un tipo de clase esqueleto que contiene firmas de método pero no incluye ninguna implementación de método. De esta manera, las interfaces son como clases abstractas que contienen sólo métodos abstractos.
Todos los miembros de una interfaz son públicos por definición y una interfaz no puede contener constantes, campos (miembros de datos privados), constructores, destructores ni ningún tipo de miembro estático. El compilador generará un error si se especifica un modificador para los miembros de una interfaz.
Las clases se pueden derivar de una interfaz para implementar esa interfaz. Estas clases derivadas deben proporcionar implementaciones para todos los métodos de la interfaz, a menos que la clase derivada se declare abstracta
public interface ICelular { public abstract void Encender(); public abstract void Apagar(); public abstract void EnviarMSM(int numero, String texto); public abstract int RecibirMSM(int numero, String texto); }En esta interfaz podemos apreciar algunas de las funciones que podría tener un celular, solo están mencionadas no están implementadas, no tienen un cuerpo de como es que se debería desarrollar.
Para poder implementar estas funciones en nuestra clase que vayamos a utilizar, tenemos que implementarla de la siguiente forma, utilizando la palabra clave implements
public class Celular implements ICelular{ }
Ver vídeo del Proyecto
Descargar Proyecto Ventana