View
212
Download
0
Category
Tags:
Preview:
DESCRIPTION
rr
Citation preview
13/11/2014
1
KATHIANE TOLEDO VALDEZ
MATERIA: PROGRAMACIN ORIENTADA A OBJETOS
KATHIANE TOLEDO VALDEZ
UNIVERSIDAD AUTONOMA DE CHIAPAS FCA, C-I
LICENCIATURA EN SISTEMAS COMPUTACIONALES
KATHIANE TOLEDO VALDEZ
UNIDAD VI. HERENCIA
CONTENIDO: 6.1 Introduccin a la herencia 6.2 Herencia simple 6.3. Herencia mltiple 6.4. Clase base y clase derivada
6.4.1. Definicin 6.4.2. Declaracin
6.5. Parte protegida 6.5.1. Propsito de la parte protegida
6.6. Redefinicin de la parte protegida 6.7. Aplicaciones
13/11/2014
2
KATHIANE TOLEDO VALDEZ
6.1. Introduccin En esta unidad, se conocer y aplicar el concepto de herencia como una de las caractersticas principales de la programacin orientada a objetos, la herencia es una forma de reutilizacin de software 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. Con la herencia, los programadores ahorran tiempo durante el desarrollo, al reutilizar software probado y depurado de alta calidad.
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple La herencia es un mecanismo que permite la definicin de una clase a partir de la definicin de otra ya existente. La herencia permite compartir automticamente mtodos y datos entre clases, subclases y objetos. Existen dos tipos de herencia: La simple y la mltiple. La herencia simple indica que se pueden definir nuevas clases solamente a partir de una clase inicial.
UNIDAD VI. HERENCIA
13/11/2014
3
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple
UNIDAD VI. HERENCIA
El esquema indica la existencia de la clase llamada personal con tres miembros. La segunda clase, Profesor heredar los miembros de la clase personal, por lo que no requiere la definicin de estos elementos.
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple
UNIDAD VI. HERENCIA
Al codificar el esquema anterior se obtiene la siguiente definicin:
13/11/2014
4
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple La clase Personal tendr tres atributos: id, Nombre, Apellidos y su mtodo constructor. Ahora lo que haremos ser que la clase Profesor herede los miembros de la clase Personal, de esta forma: Para hacer una herencia simple en c# entre clases solo se deben utilizar los dos puntos para indicar la clase de la cual se est heredando.
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple Se puede crear entonces en la clase Profesor el constructor que tome los parmetros de su clase base de la siguiente forma:
UNIDAD VI. HERENCIA
13/11/2014
5
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple Se puede crear entonces en la clase Profesor el constructor que tome los parmetros de su clase base de la siguiente forma: Para decirle que tome los atributos de la clase padre se usa la palabra clave base y se colocan los parmetros que tenga la clase padre.
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple El siguiente paso consiste en el cdigo cliente instanciar a la clase que est heredando los elementos de la siguiente manera: Se puede apreciar que aunque la clase Profesor tenga no contiene campos, como hereda los miembros de la clase Personal, se le puede asignar los valores establecidos en el mtodo constructor.
UNIDAD VI. HERENCIA
13/11/2014
6
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple Lo anterior se representa de la siguiente forma:
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple Para comprobar que la clase Profesor es independiente de la clase de la que hereda, se puede indicar los propios miembros de esta clase:
UNIDAD VI. HERENCIA
13/11/2014
7
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple Con esta modificacin, el cdigo cliente se modificara de la manera siguiente:
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple Es posible heredar muchas caractersticas de la clase padre a la clase hija, es posible utilizar variables que fueron inicializadas, en el padre a travs del hijo, esto se ejemplifica agregando una variable en la clase padre Personal: En el cdigo cliente se realizara lo siguiente:
UNIDAD VI. HERENCIA
13/11/2014
8
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple Tal cual sucedi con las variables o campos, es posible realizarlo con los mtodos, para ello se crear en la clase Personal el siguiente mtodo: Este mtodo solo permitir sumar dos nmero, en el caso de que en la clase Profesor se quiera sumar tres nmeros entonces se realiza lo siguiente:
UNIDAD VI. HERENCIA
13/11/2014
9
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple: La clase cliente quedara as:
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple:
UNIDAD VI. HERENCIA
13/11/2014
10
KATHIANE TOLEDO VALDEZ
6.2. Herencia simple: Como se puede observar en las imgenes se puede utilizar el mtodo del padre y el que se modific en la hija, esto se debe a que el mtodo se encuentra sobrecargado
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.3. Herencia mltiple Se debe aclarar antes de abordar el tema de la herencia mltiple que no todos los lenguajes soportan este tipo de herencia, C++ a diferencia de Visual Basic, C# y Java si la soportan. Un hecho real supone que una persona puede tener mas de un pariente mayor, esta situacin tambin se puede dar en la herencia entre clases.
UNIDAD VI. HERENCIA
13/11/2014
11
KATHIANE TOLEDO VALDEZ
6.3. Herencia mltiple Naturalmente este tipo de herencia involucra un mayor grado de complejidad en el lenguaje, sin embargo, el beneficio logrado es substancial. Considere por ejemplo, la clase llamada MesaRedonda la cual tiene las propiedades de una Mesa y tambin tiene las propiedades de un Circulo, de acuerdo a la siguiente estructura:
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.3. Herencia mltiple
UNIDAD VI. HERENCIA
13/11/2014
12
KATHIANE TOLEDO VALDEZ
6.3. Herencia mltiple En cdigo, esto se representara de la siguiente manera:
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.3. Herencia mltiple En cdigo, esto se representara de la siguiente manera:
UNIDAD VI. HERENCIA
13/11/2014
13
KATHIANE TOLEDO VALDEZ
6.3. Herencia mltiple En cdigo, esto se representara de la siguiente manera:
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.4. Clase base y clase derivada 6.4.1. Definicin y 6.4.2. Declaracin La clase base como ya hemos ejemplificado es aquella que puede heredar a otra clase llamada clase derivada los miembros que le permite reutilizar, sintcticamente esto lo empleamos de la siguiente manera:
UNIDAD VI. HERENCIA
Clase base Clase derivada
13/11/2014
14
KATHIANE TOLEDO VALDEZ
6.5. Parte protegida Este termino corresponde a un modificador de acceso que se define como un nivel intermedio entre el public y el private. Los miembros protegidos de una clase base pueden ser utilizados en la propia clase base y en sus clases derivadas. Para poder utilizar este modificador de acceso, se requiere de la implementacin obligatoria de la herencia.
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.5. Parte protegida Este termino corresponde a un modificador de acceso que se define como un nivel intermedio entre el public y el private. Los miembros protegidos de una clase base pueden ser utilizados en la propia clase base y en sus clases derivadas. Para poder utilizar este modificador de acceso, se requiere de la implementacin obligatoria de la herencia. El empleo de un elemento protegido requiere de los mismos elementos que los modificadores comunes de accesabilidad:
UNIDAD VI. HERENCIA
13/11/2014
15
KATHIANE TOLEDO VALDEZ
6.5. Parte protegida En el ejemplo siguiente se determina la creacin de dos clases, la clase padre que contendr diferentes miembros, entre ellos los protegidos y la clase Hija que utilizar los miembros de la clase padre a travs de la herencia.
UNIDAD VI. HERENCIA
KATHIANE TOLEDO VALDEZ
6.5. Parte protegida A travs de la variable x es posible tener acceso a los miembros pblicos y protegidos de su clase base, al usar la variable x se observa lo siguiente:
UNIDAD VI. HERENCIA
13/11/2014
16
KATHIANE TOLEDO VALDEZ
Es posible imposibilitar a las clases para poder ser heredables, esto se realiza anteponindole al nombre de la clase la palabra reservada sealed.
UNIDAD VI. HERENCIA
Recommended