16
13/11/2014 1 KATHIANE TOLEDO VALDEZ MATERIA: PROGRAMACIÓN 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 Introducción a la herencia 6.2 Herencia simple 6.3. Herencia múltiple 6.4. Clase base y clase derivada 6.4.1. Definición 6.4.2. Declaración 6.5. Parte protegida 6.5.1. Propósito de la parte protegida 6.6. Redefinición de la parte protegida 6.7. Aplicaciones

Herencia

Embed Size (px)

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