Download INTRODUCCION La clase herencia trata de dar a los programas
Document related concepts
no text concepts found
Transcript
INTRODUCCION La clase herencia trata de dar a los programas que se crean, un objeto los cuales son instancias de clases, la herencia constituye una manera de resolver este problema. Con la herencia podemos usar las clases existentes. COMO USAR HERENCIA Es una esfera para representar una esfera, una esfera tiene un radio y una posición en el espacio al mostrar una esfera en la pantalla debe parecer como un libro al mostrar una esfera en la pantalla debe parecer como un círculo Import java.awt.*; Public class Esfera { Protected int X=100, Y=100; Public viod setX ( int nuevaX){ X=nueveX; } Public viod setY ( int nuevaY){ Y=nueveY; Public void mostrar (Graphics papel) { Pepel.drawOvel (X, Y, 20, 20); } } Cabe mencionar que hay varios elementos en este problema incluyendo la palabra clave protect ted esto se debe a que escribimos la clase de tal forma que se pueda utilizar para herencia HERENCIA Cuando usamos la herencia prívate es un término demasiado privado y public es demasiado publico si una necesita dar a sus variables o métodos específicos pero debe evitar que otras clases accedan a esta, puede etiquetarlos como protected. En la analogía de una familia una madre permite a su hijo descendiente que use sus claves del automóvil pero nadie más. Volviendo a la clase esfera necesitamos variables para describir las coordenadas podrían escribir las siguientes: prívate int x, y; Esta es una decisión acertada pero debe haber mejor ideas para darse caso que en el futuro escribiera una clase que heredara esta clase y proporcionara una método adicional para mover una esfera, por lo tanto para anticiparnos a este uso en el futuro podremos mejor etiquetarla como protected protected in x, y; Ahora esta declarando protected a las variantes, de manera que otras clases no harán mal uso de ellas suponga que la declaremos a x y a y prívate como lo teníamos planeado en un principio se aplica a los métodos y hubiera sido posible utilizar la clase mediante herencia METODO PROTECTED Que escribimos la clase de tal manera clase de tal forma que se utilizar para la herencia. Transcurso de este capítulo veremos lo que significa nuevos elementos. ESCRIBIO Y PROBO ESTA CLASE Para que la utilicen nuevo programa necesitamos una clase muy parecida a esta otra. Ejemplo: burbuja Clase llamada burbuja : nos permite hacer cosas adicionales: *moverla en sentido vertical *podemos alterar PROTECTED: Usamos la herencias private es un término demasiado público. *subclase accesos a ciertas variables o método específicos, evitar que otras clase. *puede etiquetarlos como protected _____________________________________________________________________________________ Import java.awt.*; Public class Barbuda extends JFrame { Protected int radio = 10; Public void setTamaño (int tamaño) { Radio = tamaño; Public void mostrar (Graphics papel){ Papel.drawOval(x, y, 2*radio, 2*radio); } } _____________________________________________________________________________________ Pero debe haber una mejor idea. Este método necesitaría acceso a las variables x y y es inaccesibles ya que etiquetaron como prívate. SUPER Algunas veces una clase necesita llamar a un método de superclase del novel superior en el árbol no hay problemas con esto ya que los métodos de todas las clases en los niveles superiores del árbol de herencia están disponibles, siempre y cuando estén etiquetados como public o protected. Para corregir este problema hay que anteponerse al nombre de método, la palabra súper clase por ejemplo llamar al método mostrar de una súper use lo siguiente. super.mostrar (papel); En general esto es más ordenado y corto que duplicar instrucciones, y nos puede ayudar a que un programa sea más conciso al utilizar al máximo los métodos existentes. Si escribe una clase sin constructores, java supone que solo hay un constructor (con cero parámetros) Los constructores no se heredan. Por ejemplo, suponga que tenemos una clase con uno o dos constructores _________________________________________________________________________ Import java.awt.*; public class Globo{ protected int X, Y, radio; public Globo(){ X = 10; Y = 10; radio = 20; } public Globo (int Xinicia, int Yinicia, int radioinicial){ X = Xinicial; Y = Yinicial; radio = radioinicial; } //resto de la clase// } _________________________________________________________________________ Método final Los proceso de heredar y redefinir, se enfocan en cambiar el comportamiento de la clase y los objetos. La herencia es muy poderosa, algunas cosas y los fijas y no se puedan modificar .En la POO siempre existe el peligro de que alguien extienda. Las clase a las que están pertenecen y en consecuencia cambie lo que hace. Para evitar esto el programador pude describir ser por error o en un intento inadvertido. FINAL DOUBLE CMPERINCH=2.54; _____________________________________________________________________________________ Public class globo Diferente extends Globo { Public Globo Diferente (int xIncial, yIncial) { Super (); X = XIncial; Y =YIncial; Radio = 20; } //resto de la clase _____________________________________________________________________________________ METODO ABSTRACTAS Considera un programa que contiene formas graficas de todos tipos y tamaños: *círculos *rectángulo *cuadrados *triángulos */etc. Forma de similares a las clases que ya hemos visitado en superclase llamadas: formas, que describa los datos comunes. _____________________________________________________________________________________ Import java.awt.*; Public abstract class forma { Protected int x, y; Protected int tamaño; Public void moverDerecha () { X = x+10; } Public abstract void mostrar (Graphics papel); } _____________________________________________________________________________________ Herencia Herencia La herencia es un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente. La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos. La herencia está fuertemente ligada a la reutilización del código en la OOP. Esto es, el código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada de ella, o bien una subclase. Hay dos tipos de herencia: Herencia Simple y Herencia Múltiple. La primera indica que se pueden definir nuevas clases solamente a partir de una clase inicial mientras que la segunda indica que se pueden definir nuevas clases a partir de dos o más clases iniciales. Java sólo permite herencia simple.