Sei sulla pagina 1di 9

HERENCIA

En orientacin a objetos la herencia es, despus de la agregacin o composicin, el mecanismo ms utilizado para alcanzar algunos de los objetivos ms preciados en el desarrollo de software como lo son la reutilizacin y la extensibilidad. A travs de ella los diseadores pueden crear nuevas clases partiendo de una clase o de una jerarqua de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseo, la modificacin y verificacin de la parte ya implementada. La herencia facilita la creacin de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (mtodos) y eventualmente los atributos (variables) de su superclase.

Es la relacin entre una clase general y otra clase ms especfica. Por ejemplo: Si declaramos una clase prrafo derivada de una clase texto, todos los mtodos y variables asociadas con la clase texto, son automticamente heredados por la subclase prrafo.

La herencia es uno de los mecanismos de los lenguajes de programacin orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del lenguaje de programacin).

Ejemplo de herencia en programacin orientada a objetos


import javax.*; import javax.swing.JOptionPane; public class Mamifero{ private int patas; private String nombre; public void imprimirPatas(){ JOptionPane.showMessageDialog(null," Tiene " + patas + " patas\n", "Mamifero", JOptionPane.INFORMATION_MESSAGE); } public Mamifero(String nombre, int patas){ this.nombre = nombre; this.patas = patas; } }

public class Perro extends Mamifero { public Perro(String nombre){ super(nombre, 4); } } public class Gato extends Mamifero { public Gato(String nombre){ super(nombre, 4); } } public class CrearPerro { public static void main(String[] args) { Perro perrito = new Perro("Pantaleon"); perrito.imprimirPatas(); /*Est en la clase mamfero*/ } }

Ejemplo 2 de programacin orientada a objetos


class Humano { protected String nombre; protected String apellido; public Humano(String nombre,String apellido) { this.nombre = nombre; this.apellido = apellido; } public String nombreCompleto() { return this.apellido + ", " + this.nombre; } public String identificacion() { return this.nombreCompleto(); } } class Ciudadano extends Humano { protected String documento; public Ciudadano(String nombre,String apellido, String documento) { super(nombre,apellido); this.documento = documento; }

public String identificacion() { return super.identificacion() + ", documento: " + this.documento; } }

public class Herencia { public static void main (String args[]) { Humano a = new Humano("Emilio","Rosso"); Ciudadano b = new Ciudadano("Emilio","Rosso","3052454545"); Humano [] arregloDeHumanos; arregloDeHumanos.push(a); arregloDeHumanos.push(b); identificarPolimorfico(arregloDeHumanos); } public static void identificarPolimorfico(Humano [] arregloDeHumanos) { for(int i = 0; i < arregloDeHumanos.length ; i++) { System.out.println("Identificando: " + arregloDeHumanos[i].identificacion()); } } }

IMGENES DE EJEMPLOS HERENCIA:

Conclusin:
Mi conclusin a cerca de este tema es que es algo que sirve mucho a los programadores para el diseo, ya que pueden crear nuevas clases partiendo de otras clases o jerarquas ya existentes.

BIBLIOGRAFIAS:
http://es.wikipedia.org/wiki/Herencia_%28inform%C3%A1tica%29 http://ingenieropaulo.blogspot.com/2013/03/ejemplo-de-herencia-en-programacion.html http://codigomaldito.blogspot.com/2011/06/ejemplo-de-herencia-en-java.html https://www.google.com/search?q=IMAGENES+DE+HERENCIA+EN+PROGRAMACION&cli ent=firefox-a&hs=hZM&rls=org.mozilla:enUS:official&channel=fflb&tbm=isch&tbo=u&source=univ&sa=X&ei=HiFpUouKsTHiwKkv4DIDA&ved=0CCkQsAQ&biw=1366&bih=634&dpr=1#imgdii=_

POLIMORFISMO
En programacin orientada a objetos el polimorfismo se refiere a la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterognea. El nico requisito que deben cumplir los objetos que se utilizan de manera polimrfica es saber responder al mensaje que se les enva. o La apariencia del cdigo puede ser muy diferente dependiendo del lenguaje que se utilice, ms all de las obvias diferencias sintcticas. o Por ejemplo, en un lenguaje de programacin que cuenta con un sistema de tipos dinmico (en los que las variables pueden contener datos de cualquier tipo u objetos de cualquier

clase) como Smalltalk no se requiere que los objetos que se utilizan de modo polimrfico sean parte de una jerarqua de clases.

EJEMPLO DE POLIMORFISMO EN PROGRAMACION


#include<iostream> using namespace std; class Figura { private: float base; float altura; public: void captura(); virtual unsigned float perimetro()=0; virtual unsigned float area()=0; }; class Rectangulo: public Figura { public: void imprime(); unsigned float perimetro(){return 2*(base+altura);} unsigned float area(){return base*altura;} }; class Triangulo: public Figura { public: void muestra(); unsigned float perimetro(){return 2*altura+base} unsigned float area(){return (base*altura)/2;} }; void Figura::captura() { cout << "CALCULO DEL AREA Y PERIMETRO DE UN TRIANGULO ISSCELES Y UN RECTANGULO:" << endl; cout << "escribe la altura: "; cin >> altura; cout << "escribe la base: "; cin >> base; cout << "EL PERIMETRO ES: " << perimetro(); cout << "EL AREA ES: " << area(); getch(); return 0; } == Polimorfismo desde una interfaz == Aunque el polimorfismo es el mismo se aplique donde se aplique, el modo en que se aplica desde una[[interfaz]] puede resultar un poco ms oscuro y difcil de entender. Se expone un sencillo ejemplo (en VB-NET) comentado para entender como funciona aplicado desde una interfaz, primero se escribe el cdigo y luego se comenta el funcionamiento. Nota: para no enturbiar el cdigo en exceso, todo lo que no se declara privado se sobreentiende pblico.

<source lang=vbnet> ' Declaramos una interfaz llamada IOperar y declaramos una funcin llamada Operar ' que implementarn las clases deseadas: Interface IOperar Function Operar(valor1 as integer, valor2 as integer) as long End Interface ' Declaramos una clase que trabaja ms alejada del usuario y que contendra funciones comunes ' para las siguiente clase, si no fueran idnticas iran en la interfaz, ' pero al caso de mostrar el polimorfismo se suponen idnticas: Class Operacion Function Calcular(clasellamante as Object) as Long ' aqu ira el cdigo comn a todas las operaciones.... que llaman a esa funcin ' por ejemplo recoger los 2 valores de la operacin, chequear que estn en el rango deseado, etc. ' se supone que la funcin inputValor recoge un valor de algn sitio valor1 as integer = inputValor() valor2 as integer = inputValor() op as New IOperar = clasellamante Return op.Operar(valor1,valor2) 'AQU es donde se utiliza el polimorfismo. End Function End Class ' Declaramos 2 clases: Sumar y Restar que implementan la interfaz y que llaman a la clase Operacion: Class Sumar Implements IOperar Private Function Operar(valor1 as Integer, valor2 as Integer) as Long Implements IOperar.Operar Return valor1 + valor2 End Function Function Calcular() as Long op as New operacion Return op.Calcular(Me) ' se est llamando a la funcin 'Calcular' de la clase 'Operacin' End Function End Class ' segunda clase.... Class Restar Implements IOperar Private Function Operar(valor1 as Integer, valor2 as Integer) as Long Implements IOperar.Operar Return valor1 - valor2 End Function Function Calcular() as Long op as New operacion Return op.Calcular(Me) ' se est llamando a la funcin 'Calcular' de la clase 'Operacin'

End Function End Class

IMAGEN DE EJEMPLO DE POLIMORFISMO:

CONCLUSION:
El polimorfismo es aqul en el que el cdigo no incluye ningn tipo de especificacin sobre el tipo de datos sobre el que se trabaja. As, puede ser utilizado a todo tipo de datos compatible. Tambin es aqul en el que los tipos a los que se aplica el polimorfismo deben ser explcitos y declarados uno por uno antes de poder ser utilizados

BIBLIOGRAFIAS: http://es.wikipedia.org/wiki/Polimorfismo_%28inform%C3%A1tica%29

ENCAPSULAMIENTO
En Programacin modular, y ms especficamente en programacin orientada a objetos, se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que slo se pueda cambiar mediante las operaciones definidas para ese objeto.

o Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados de un objeto contra su modificacin por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones. o De esta forma el usuario de la clase puede obviar la implementacin de los mtodos y propiedades para concentrarse slo en cmo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas. Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o ncleo del objeto. Los mtodos rodean y esconden el ncleo del objeto de otros objetos en el programa. 'Al empaquetamiento de las variables de un objeto con la proteccin de sus mtodos se le llama encapsulamiento. Tpicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en prctica no importantes de otros objetos. Entonces, los detalles de la puesta en prctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa.

EJEMPLOS DE ENCAPSULAMIENTO EN PROGRAMACION ORIENTADA A OBJETOS

IMGENES DE EJEMPLOS DE ENCAPSULAMIENTO:

CONCLUSION:
Es cuando las variables del objeto se encuentran como en ncleo y los mtodos rodean el ncleo.

BILBIOGRAFIAS:
http://es.wikipedia.org/wiki/Encapsulamiento_(inform%C3%A1tica)

Potrebbero piacerti anche