Conceptos Avanzados De La Programación Orientada A Objetos
Rteck14817 de Febrero de 2015
602 Palabras (3 Páginas)596 Visitas
Definición de Herencia
Es una forma de reutilización de software y reducción de código en la que se crea una nueva clase absorbiendo los miembros de una clase existente, y se mejoran con nuevas capacidades, o con modificaciones en las capacidades ya existentes.
Al crear una clase, en vez de declarar miembros completamente nuevos, el programador puede designar que la nueva clase (se conoce como subclase) herede los miembros de una clase existente (se conoce como superclase).
Una subclase generalmente agrega sus propios campos y métodos. Por lo tanto, una subclase es más específica que su superclase y representa a un grupo más especializado de objetos.
La subclase exhibe los comportamientos de su superclase junto con comportamientos adicionales específicos de esta subclase.
Es por ello que a la herencia se le conoce algunas veces como especialización.
Para declarar la herencia en Java usamos la palabra clave extends.
La sintaxis para definir en Java una subclase es:
public class NombreSubclase extends NombreSuperclase{…}
super (); o super(a,b,…,z); <---- Los constructores de una subclase siempre deben contener una llamada a un constructor de la superclase.
super.Método();<--- permite llamar a un método del la superclase.
Polimorfismo
Es una característica que tiene POO que nos permite “programar en forma general”, en vez de “programar en forma específica”.
Es la propiedad de que un operador o una función actúen de modo diferente en función del objeto sobre el que se aplican.
Es la capacidad de una operación de ser interpretada sólo por el propio objeto que lo invoca.
Es aquella propiedad en que una operación tiene el mismo nombre en diferentes clases, pero se ejecuta de diferentes formas en cada clase.
Por ejemplo, la operación de abrir se puede dar en diferentes clases: abrir una puerta, abrir una ventana, abrir un periódico, abrir un archivo. En cada caso se ejecuta una operación diferente aunque tiene el mismo nombre en todos ellos “abrir”.
Clases Abstractas
Es una clase que no se puede instanciar (No se pueden crear objetos de una clase abstracta) se usa para definir subclases.
Las subclases de una clase abstracta deben sobrescribir todo los métodos abstractos de la superclase, o ser declaradas como clases abstractas
Las clases abstractas se utilizan cuando se define una abstracción que engloba objetos de distintos tipos y queremos hacer uso del polimorfismo.
Los métodos de una clase abstracta no tiene implementación y se etiquetan con la palabra reservada abstract .
Un método definido como abstracto tiene la particularidad de no tener cuerpo y la idea es proporcionar métodos que deben ser redefinidos en las subclases que pertenecen a la clase abstracta con la intención de adaptarlos a las necesidades particulares de éstas.
Una clase con un método abstracto debe declararse como clase abstracta. Una clase puede declararse como abstracta aunque no tenga ningún método abstracto.
Las clases abstractas pueden tener variables y métodos no abstractos.
Los constructores NO se pueden definir como abstractos.
Interfaces
Una interface es una clase completamente abstracta (clase sin implementación), sólo define cuales son los métodos que han de implementar los objetos que aquellas clases que implementen la interface.
Las interfaces se declaran con la palabra reservada interface , en la declaración de una interfaz, lo único que puede aparecer son declaraciones de métodos(su nombre y signatura, sin su implementación).
Las interfaces, al igual que las clases y métodos abstractos, proporcionan las plantillas de comportamiento que se espera sean implementados
...