Cap 3 - Herencia simple y múltiple (1) PDF
Document Details
Uploaded by GoodlyPraseodymium
Universidad Mayor Real y Pontificia de San Francisco Xavier de Chuquisaca
José Enrique Iglesias
Tags
Summary
This document explains simple and multiple inheritance in object-oriented programming. It discusses the concept, characteristics, and examples of inheritance, and how it's used in object-oriented programming languages. The document also delves into the concept of mixins as a method for achieving multiple inheritance in JavaScript.
Full Transcript
INGENIERÍA EN DISEÑO Y ANIMACIÓN DIGITAL CAPÍTULO 3: HERENCIA SIMPLE Y HERENCIA MÚLTIPLE M. Sc. Ing. José Enrique Iglesias HERENCIA La herencia es una característica específica de la programación orientada a objetos. Es un concepto clave en el mundo de los lenguajes de programa...
INGENIERÍA EN DISEÑO Y ANIMACIÓN DIGITAL CAPÍTULO 3: HERENCIA SIMPLE Y HERENCIA MÚLTIPLE M. Sc. Ing. José Enrique Iglesias HERENCIA La herencia es una característica específica de la programación orientada a objetos. Es un concepto clave en el mundo de los lenguajes de programación orientado a objetos. A través de este mecanismo se evita repeticiones de código cuando se define diferentes clases que tengan varias características comunes y que están relacionadas. HERENCIA La herencia de clase es el mecanismo por el cual una clase adquiere o hereda los atributos y métodos de su clase padre y clases antecesoras (los constructores no se heredan). La principal característica es la reutilización de código. Con la herencia, todas las clases están clasificadas en una jerarquía estricta. HERENCIA La clase existente es conocida como clase madre, o superclase, o clase base. La clase derivada también es conocida como clase hija o subclase. SUPERCLASE Y SUBCLASE Una ‘superclase’ es aquella clase a partir de la cual heredan (extienden) otras, siendo así también llamada como ‘clase madre’. Una “subclase” es toda aquella clase que hereda (extiende) de otra; también podemos referirnos a ella como ‘clase hija’. Aplicando a estas definiciones la flexibilidad de los objetos, se deduce que cualquier ‘clase hija’, o subclase, puede ser a su vez la ‘clase madre’, o superclase, de otras. EJEMPLO DE HERENCIA EJEMPLO DE 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. HERENCIA SIMPLE El termino heredar significa que las subclases disponen de todos los atributos y métodos de su superclase. La herencia simple se caracteriza porque las clases heredadas o subclases, solo pueden tener una clase padre o superclase. JavaScript soporta la implementación de herencia simple de forma directa. HERENCIA SIMPLE IMPLEMENTACION HERENCIA SIMPLE Implementación de la clase padre, más su constructor Implementación de los métodos get, set y métodos propios de la clase padre Implementación de la clase hija, más su constructor Implementación de los métodos get, set y métodos propios de la clase hija IMPLEMENTACION HERENCIA SIMPLE Nombre de la Palabra reservada clase hija que permite la herencia Nombre de la En el constructor de la clase padre clase hija se debe recibir como parámetros también los atributos de la clase padre y definir e inicializar sus propios atributos. Permite invocar a los atributos y métodos de la clase padre desde la clase hija. IMPLEMENTACION HERENCIA SIMPLE Se importa el archivo, donde está implementada la clase y subclase. El objeto creado puede invocar a los La instancia del objeto, debe ser de la métodos de la clase padre o hija. clase hija o subclase. HERENCIA MÚLTIPLE Se caracteriza porque una subclase deriva de dos o mas clases padre o superclases. JavaScript no permite la implementación de la herencia múltiple de forma directa. Para implementar herencia múltiple en JavaScript, se recurre al uso de mixims. HERENCIA MÚLTIPLE TIPOS DE HERENCIA - EJEMPLOS Herbívoro -> Herencia simple Carnívoro -> Herencia simple Omnívoro -> Herencia simple Herbívoro -> Herencia simple Conejo -> Herencia simple Carnívoro -> Herencia simple León -> Herencia simple Vaca -> Herencia simple Hiena -> Herencia simple Conejo -> Herencia simple Hombre -> Herencia simple Hombre -> Herencia múltiple TIPOS DE HERENCIA - EJEMPLOS Hotel -> Herencia simple Restaurant -> Herencia simple HotelRestaurant -> Herencia Ganso -> Herencia simple múltiple Pato -> Herencia simple Gallina -> Herencia simple MIXINS En los lenguajes de programación orientada a objetos, un mixin es una clase que ofrece cierta funcionalidad para ser heredada por una subclase, pero que no está ideada para ser autónoma. Los mixins son subclases abstractas que aplicamos sobre diferentes superclases para crear familias relacionadas de clases modificadas. JavaScript hace uso de los mixins, para la implementación de la herencia múltiple. ESQUEMA DE COMPOSICIÓN Se puede afirmar de que los Mixins son como fábricas (factorías) de subclases que están parametrizadas por la superclase. De este modo, se crea una cadena de herencia donde encontramos, en este orden, la superclase (la madre), el mixin (la fábrica), y la subclase (la hija). ESQUEMA DE COMPOSICIÓN Esquema de Implementación de Herencia Simple ESQUEMA DE COMPOSICIÓN Esquema de Implementación de Herencia Múltiple IMPLEMENTACIÓN DE MÚLTIPLES MIXINS La flexibilidad del sistema permite aplicar varios Mixins sobre una misma subclase. El siguiente esquema representa la implementación a nivel gráfico de múltiples Mixins: IMPLEMENTACIÓN HERENCIA MÚLTIPLE IMPLEMENTACIÓN HERENCIA MÚLTIPLE Implementación de la clase padre, con su respectivo constructor, sus métodos get, set y los métodos propios de la clase. Definición del mixin, donde Carrera es el nombre del mixin El constructor del mixin, debe recibir como parámetros los atributos de la clase padre y definir e inicializar sus propios atributos. El super ayuda a invocar a los atributos y métodos de la clase padre IMPLEMENTACIÓN HERENCIA MÚLTIPLE Definición de la subclase, denominada Universitario. Esquema de composición. La subclase debe ser una composición del mixin y la clase padre. El constructor de la subclase, debe recibir como parámetros los atributos de la clase padre y del mixin, adicionalmente debe definir e inicializar sus propios atributos. El super ayuda a invocar a los atributos y métodos del mixin y de la clase padre IMPLEMENTACIÓN HERENCIA MÚLTIPLE Se importa el archivo, donde está implementada la clase, el mixin y la subclase. El objeto creado puede invocar a los métodos de la clase padre, del mixin o La instancia del objeto, debe ser de la de la sublclase. clase hija o subclase. EJERCICIOS