SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
O
O
P
04
Nueva edición - 2020
progra_amandoholamundo.co
1/14@xacarana
Agenda Herencia
Casting
2/14@xacarana
Herencia
Con el fin de especializar las car-
acterísticas de la clase Galleta, es
posible crear una nueva clase que
herede las propiedades y carac-
terísticas de una clase superior
llamada padre.
La clase hija hereda propiedades
y métodos del padre y puede ten-
er nuevas propiedades y métodos.
Se dice que la clase hija posee
una relación de tipo “es-un” con la
clase padre.
Otras galletas, clases hijas: Helado, para
perro, integrales, saladas, mini-galletas,
vegana, artificial, etc.
Galleta
- nombre:cadena
- ingredientes:cadena[]
- codigo_sabor:entero
+ setter y getter propiedades
+ MarcaGalleta():cadena
+ FechaVencimiento():Fecha
Wafer
- relleno:booleano
- medidas:entero[]
- es_dietetica:booleano
+ setter y getter propiedades
+ AsignarRelleno():void
+ PegarGalletas():void
Fortuna
- relleno:booleano
- empaque:booleano
- mensaje:cadena
+ setter y getter propiedades
+ MensajeAletorio():void
+ DestaparGalleta():cadena
Pretzel
- numero_vueltas:entero
- medidas:entero[]
- tiene_sal:booleano
+ setter y getter propiedades
+ Adornar():void
+ Doblar():void
...
es una
es una
es una
Clase Padre
Clases
Hijas
La relación se lee: Wafer es una Galleta
3/14@xacarana
Galleta
GalletaHelado
GalletaRectangular
Jerarquía de clases
Solo se puede heredar de una
sola clase y múltiples clases
pueden heredar de la misma
clase.
Cada vez que se hereda de una
clase, se busca especializar las
propiedades y funcionalidades de
la clase.
Se puede decir que:
La clase GalletaHelado, hereda
de la clase Galleta y
GalletaRectangular
4/14@xacarana
Creación de la clase Padre
class Galleta
{
private string nombre;
// ... resto de miembros dato
public void FechaVencimiento()
{
Console.WriteLine("23/03/2021");
}
// ... resto de métodos
public string Nombre { get => nombre; set => nombre = value; }
// ... resto de setter y getters
}
La clase padre no sufre ningún cambio en su implementación, es importante
tener en cuenta identificar propiedades y acciones que deban estar en ella,
para luego ser heredadas por las hijas.
5/14@xacarana
Creación de la clase hija
La clase hija, se dice que extiende de la clase padre, para definir esta relación
se usan : (dos puntos) como se muestra en el ejemplo.
class GalletaCuadrada:Galleta
{
public void Congelar()
{
Console.WriteLine("Galleta congelada");
}
}
Nuevo método
clase hija
6/14@xacarana
Uso de propiedades
Al crear una clase hija, se heredan las propiedades y métodos de la clase pa-
dre, es posible acceder a esta información desde las clases hijas.
GalletaRectangular gr = new GalletaRectangular();
gr.Nombre = “Biscuit”;
gr.BordeOvalado(true);
Se asigna el nombre, que es
una propiedad heredada
El método BordeOvalado
es una nueva acción, dis-
ponible solo en la clase hija
7/14@xacarana
Uso de métodos
Las clases hijas definen acciones especializadas adicionales que no tienen la
clase padre, de esta forma las hijas, seguiran haciendo una sola cosa bien, la
clase padre es generalista y las hijas especialistas.
GalletaRectangular gr = new GalletaRectangular();
gr.Congelar();
gr.FechaDeVencimiento();
Congelar es una acción nueva
definida solo en la clase hija
Acción heredada de la clase
padre, que comparten las
clases hijas. No se redefine
8/14@xacarana
Manejo de referencias
Teniendo en cuenta la relación “es un” presente entre la clase padre y la clase
hija, se pueden usar la clase padre como variable contenedora de sus hijas, la
clase padre actua como una envoltura (wrapper)
Galleta galleta = new GalletaRectangular();
galleta.FechaVencimiento();
Console.WriteLine(galleta.Nombre);
Se invoca una acción de la
clase padre, que ha sido here-
dada
Otra forma de acceder a los
getters heredados
9/14@xacarana
Casting
Se refiere a una operación de conversión entre dos tipos de datos diferentes
pero que pueden llegar a ser compatibles porque comparten propiedades,
acciones o pertenencen al mismo conjunto.
Si hablamos de números,
el casting es el proceso
de convertir un número
en otro compatible
Si hablamos de clases, el cast-
ing es el proceso de convertir
una clase a otra compatible. Si
hay una relación de herencia, es
posible realizar casting.
5 5.0
int double GalletaFortuna Galleta
10/14@xacarana
Casting implícito
Se realiza un casting implícito cuando la conversión entre datos se puede
hacer de manera transparente, es decir sin que se afecten las operaciones
que se vayan a realizar con los datos luego de la conversión
5
int x
x = y
5.3
double y
y = 5.3
y * 2
x5 5.0
int x double y
x = 5 y = x
y * 2
Pérdida de datos
Error al realizar la
conversión
Este error, se
detecta en
tiempo de
compilación
11/14@xacarana
Casting explícito
Se presenta cuando la conversión se puede realizar porque hay dos tipos
compatibles, pero no es obvía o puede traer problemas de precisión en las
operaciones entre variables.
Galleta gr = new GalletaRectangular();
((GalletaRectangular)gr).Congelar();
int x = (int)Math.PI;
Se convierte el objeto a su
tipo específico y luego se usa
una acción.
Pérdida de precisión, el
casting autoriza la operación
12/14@xacarana
Polimorfismo
Al comportamiento que asume la clase padre como wrapper contenedor, se
le conoce como polimorfismo, ya que una referencia de un tipo padre, puede
asumir el rol de cualquiera de sus hijas, esto hace que sea versatil y una forma
de guardar una referencia que puede conteneer cualquier clase hija.
La referencia se convierte en la base que puede contener a sus hijas, las
cuales son diferentes y especializadas, pero tienen similitudes, ya que ex-
tiende de un mismo padre.
El arreglo de tipo Galleta, puede contener galletas hijas de diferente tipo, las
cuales tienen en común que son Galletas, por la relación de herencia.
Galleta[] hijas = {new GalletaRectangular(), new Oreo(), new Fortuna()};
13/14@xacarana
Ejercicios
•	Crear 5 clases diferentes que hereden de un concepto en común
•	Crear una clase que tenga una herencia de varios niveles, por ejemplo GalletaHelado,
hereda de GalletaCuadrada y Galleta cuadrada hereda de Galleta. GalletaHelado es
nivel 3.
•	¿De cuantas clases puede heredar una clase hija?
•	Crear un arreglo de una clase Padre, crear instancias de clases hijas y por medio de
un ciclo, recorrer el arreglo e invocar un método en común.
•	Crear el diagrama de clases de la clase Animal, Tiburon, Leon, Tortuga, Mico, Loro. Ob-
serve que hay animales terrestres, acuaticos y areos, evidence estas propiedades en
el diagrama.
•	En una jerarquía de 5 clases, cree una instancia de la última clase y la guarda en una
referencia de la clase padre, luego por medio de casting explicito, llame métodos pre-
sentes en cada clase especifica.
•	Cree tres clases hijas, con diferentes constructores que permitan inicializar miembros
datos propios y heredados
•	¿Cual es el valor por defecto de los miembros datos de una clase hija? ¿Y el valor por
defecto de miembros dato heredados?
14/14@xacarana

Más contenido relacionado

La actualidad más candente

passport, experience certificates & 10th & intermediate certificates - Copy.PDF
passport, experience certificates & 10th & intermediate certificates - Copy.PDFpassport, experience certificates & 10th & intermediate certificates - Copy.PDF
passport, experience certificates & 10th & intermediate certificates - Copy.PDFShailendra Vyas
 
Certificate of Work Experience
Certificate of Work ExperienceCertificate of Work Experience
Certificate of Work ExperienceChlo Kilgour
 
Bimby - À Portuguesa, Com Certeza
Bimby - À Portuguesa, Com CertezaBimby - À Portuguesa, Com Certeza
Bimby - À Portuguesa, Com CertezaCatarina Ferreira
 
Bimby - Dicas, Truques e Etc.
Bimby - Dicas, Truques e Etc.Bimby - Dicas, Truques e Etc.
Bimby - Dicas, Truques e Etc.Catarina Ferreira
 
Teks Viler LIB 90 - Spanjolska kopca
Teks Viler LIB 90 - Spanjolska kopcaTeks Viler LIB 90 - Spanjolska kopca
Teks Viler LIB 90 - Spanjolska kopcaStripovizijacom
 
Array of objects.pptx
Array of objects.pptxArray of objects.pptx
Array of objects.pptxRAGAVIC2
 
018. ZAGOR - SRCE I MAČ
018. ZAGOR - SRCE I MAČ018. ZAGOR - SRCE I MAČ
018. ZAGOR - SRCE I MAČTompa *
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template LibraryGauravPatil318
 
Sa na Tv (Hor) 13 - VB
Sa na Tv (Hor) 13 - VBSa na Tv (Hor) 13 - VB
Sa na Tv (Hor) 13 - VBStripovi Klub
 
Loup solitaire 17 la tour de cristal
Loup solitaire 17   la tour de cristalLoup solitaire 17   la tour de cristal
Loup solitaire 17 la tour de cristalWolfen Dugondor
 
Lecture 1/2022 General physiology I -Cell - nucleus and cytoplasm-
Lecture 1/2022  General physiology I -Cell - nucleus and cytoplasm-Lecture 1/2022  General physiology I -Cell - nucleus and cytoplasm-
Lecture 1/2022 General physiology I -Cell - nucleus and cytoplasm-Charushila Rukadikar
 

La actualidad más candente (20)

01 curso poo Funciones
01 curso poo Funciones01 curso poo Funciones
01 curso poo Funciones
 
passport, experience certificates & 10th & intermediate certificates - Copy.PDF
passport, experience certificates & 10th & intermediate certificates - Copy.PDFpassport, experience certificates & 10th & intermediate certificates - Copy.PDF
passport, experience certificates & 10th & intermediate certificates - Copy.PDF
 
Certificate of Work Experience
Certificate of Work ExperienceCertificate of Work Experience
Certificate of Work Experience
 
Methods in C#
Methods in C#Methods in C#
Methods in C#
 
Structure and Enum in c#
Structure and Enum in c#Structure and Enum in c#
Structure and Enum in c#
 
Pandas csv
Pandas csvPandas csv
Pandas csv
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Bimby - À Portuguesa, Com Certeza
Bimby - À Portuguesa, Com CertezaBimby - À Portuguesa, Com Certeza
Bimby - À Portuguesa, Com Certeza
 
Bimby - Dicas, Truques e Etc.
Bimby - Dicas, Truques e Etc.Bimby - Dicas, Truques e Etc.
Bimby - Dicas, Truques e Etc.
 
Greenfoot 6
Greenfoot 6Greenfoot 6
Greenfoot 6
 
Teks Viler LIB 90 - Spanjolska kopca
Teks Viler LIB 90 - Spanjolska kopcaTeks Viler LIB 90 - Spanjolska kopca
Teks Viler LIB 90 - Spanjolska kopca
 
Array of objects.pptx
Array of objects.pptxArray of objects.pptx
Array of objects.pptx
 
018. ZAGOR - SRCE I MAČ
018. ZAGOR - SRCE I MAČ018. ZAGOR - SRCE I MAČ
018. ZAGOR - SRCE I MAČ
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template Library
 
Sa na Tv (Hor) 13 - VB
Sa na Tv (Hor) 13 - VBSa na Tv (Hor) 13 - VB
Sa na Tv (Hor) 13 - VB
 
Longman fishes
Longman fishesLongman fishes
Longman fishes
 
DPSM
DPSMDPSM
DPSM
 
Loup solitaire 17 la tour de cristal
Loup solitaire 17   la tour de cristalLoup solitaire 17   la tour de cristal
Loup solitaire 17 la tour de cristal
 
Lecture 1/2022 General physiology I -Cell - nucleus and cytoplasm-
Lecture 1/2022  General physiology I -Cell - nucleus and cytoplasm-Lecture 1/2022  General physiology I -Cell - nucleus and cytoplasm-
Lecture 1/2022 General physiology I -Cell - nucleus and cytoplasm-
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
 

Más de Andres Bedoya Tobon

Taller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - ExcelTaller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - ExcelAndres Bedoya Tobon
 
Entrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de textoEntrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de textoAndres Bedoya Tobon
 
Progra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech FestProgra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech FestAndres Bedoya Tobon
 
Excel - Variables y condicionales
Excel - Variables y condicionalesExcel - Variables y condicionales
Excel - Variables y condicionalesAndres Bedoya Tobon
 
Elementos de programacion - Excel
Elementos de programacion - ExcelElementos de programacion - Excel
Elementos de programacion - ExcelAndres Bedoya Tobon
 
Programación y diseño orientado a objetos
Programación y diseño orientado a objetosProgramación y diseño orientado a objetos
Programación y diseño orientado a objetosAndres Bedoya Tobon
 
Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)Andres Bedoya Tobon
 
Presentación 13 Paso por referencia
Presentación 13 Paso por referenciaPresentación 13 Paso por referencia
Presentación 13 Paso por referenciaAndres Bedoya Tobon
 
Presentación 11 Entrada y salida de datos
Presentación 11 Entrada y salida de datosPresentación 11 Entrada y salida de datos
Presentación 11 Entrada y salida de datosAndres Bedoya Tobon
 

Más de Andres Bedoya Tobon (20)

VBA Interfaz de usuario
VBA Interfaz de usuarioVBA Interfaz de usuario
VBA Interfaz de usuario
 
VBA Interfaz de usuario
VBA Interfaz de usuarioVBA Interfaz de usuario
VBA Interfaz de usuario
 
Taller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - ExcelTaller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - Excel
 
Entrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de textoEntrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de texto
 
Progra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech FestProgra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech Fest
 
Excel - Variables y condicionales
Excel - Variables y condicionalesExcel - Variables y condicionales
Excel - Variables y condicionales
 
Excel - Macros
Excel - MacrosExcel - Macros
Excel - Macros
 
Taller de estudio - Excel
Taller de estudio - ExcelTaller de estudio - Excel
Taller de estudio - Excel
 
Elementos de programacion - Excel
Elementos de programacion - ExcelElementos de programacion - Excel
Elementos de programacion - Excel
 
Automatizar tareas usando GAP
Automatizar tareas usando GAPAutomatizar tareas usando GAP
Automatizar tareas usando GAP
 
Pull request - Hacktoberfest
Pull request - Hacktoberfest Pull request - Hacktoberfest
Pull request - Hacktoberfest
 
Abc tipografico Medellin CSS
Abc tipografico Medellin CSSAbc tipografico Medellin CSS
Abc tipografico Medellin CSS
 
Programación y diseño orientado a objetos
Programación y diseño orientado a objetosProgramación y diseño orientado a objetos
Programación y diseño orientado a objetos
 
Clean code
Clean codeClean code
Clean code
 
Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)
 
Presentación 13 Paso por referencia
Presentación 13 Paso por referenciaPresentación 13 Paso por referencia
Presentación 13 Paso por referencia
 
Presentación 12 Paso por copia
Presentación 12 Paso por copiaPresentación 12 Paso por copia
Presentación 12 Paso por copia
 
Presentación 11 Entrada y salida de datos
Presentación 11 Entrada y salida de datosPresentación 11 Entrada y salida de datos
Presentación 11 Entrada y salida de datos
 
Presentación 09 Cajas blanca
Presentación 09 Cajas blancaPresentación 09 Cajas blanca
Presentación 09 Cajas blanca
 
Presentación 10 Cajas negras
Presentación 10 Cajas negrasPresentación 10 Cajas negras
Presentación 10 Cajas negras
 

Último

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfJonathanCovena1
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 

Último (20)

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdf
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 

04 curso poo Herencia

  • 1. O O P 04 Nueva edición - 2020 progra_amandoholamundo.co 1/14@xacarana
  • 3. Herencia Con el fin de especializar las car- acterísticas de la clase Galleta, es posible crear una nueva clase que herede las propiedades y carac- terísticas de una clase superior llamada padre. La clase hija hereda propiedades y métodos del padre y puede ten- er nuevas propiedades y métodos. Se dice que la clase hija posee una relación de tipo “es-un” con la clase padre. Otras galletas, clases hijas: Helado, para perro, integrales, saladas, mini-galletas, vegana, artificial, etc. Galleta - nombre:cadena - ingredientes:cadena[] - codigo_sabor:entero + setter y getter propiedades + MarcaGalleta():cadena + FechaVencimiento():Fecha Wafer - relleno:booleano - medidas:entero[] - es_dietetica:booleano + setter y getter propiedades + AsignarRelleno():void + PegarGalletas():void Fortuna - relleno:booleano - empaque:booleano - mensaje:cadena + setter y getter propiedades + MensajeAletorio():void + DestaparGalleta():cadena Pretzel - numero_vueltas:entero - medidas:entero[] - tiene_sal:booleano + setter y getter propiedades + Adornar():void + Doblar():void ... es una es una es una Clase Padre Clases Hijas La relación se lee: Wafer es una Galleta 3/14@xacarana
  • 4. Galleta GalletaHelado GalletaRectangular Jerarquía de clases Solo se puede heredar de una sola clase y múltiples clases pueden heredar de la misma clase. Cada vez que se hereda de una clase, se busca especializar las propiedades y funcionalidades de la clase. Se puede decir que: La clase GalletaHelado, hereda de la clase Galleta y GalletaRectangular 4/14@xacarana
  • 5. Creación de la clase Padre class Galleta { private string nombre; // ... resto de miembros dato public void FechaVencimiento() { Console.WriteLine("23/03/2021"); } // ... resto de métodos public string Nombre { get => nombre; set => nombre = value; } // ... resto de setter y getters } La clase padre no sufre ningún cambio en su implementación, es importante tener en cuenta identificar propiedades y acciones que deban estar en ella, para luego ser heredadas por las hijas. 5/14@xacarana
  • 6. Creación de la clase hija La clase hija, se dice que extiende de la clase padre, para definir esta relación se usan : (dos puntos) como se muestra en el ejemplo. class GalletaCuadrada:Galleta { public void Congelar() { Console.WriteLine("Galleta congelada"); } } Nuevo método clase hija 6/14@xacarana
  • 7. Uso de propiedades Al crear una clase hija, se heredan las propiedades y métodos de la clase pa- dre, es posible acceder a esta información desde las clases hijas. GalletaRectangular gr = new GalletaRectangular(); gr.Nombre = “Biscuit”; gr.BordeOvalado(true); Se asigna el nombre, que es una propiedad heredada El método BordeOvalado es una nueva acción, dis- ponible solo en la clase hija 7/14@xacarana
  • 8. Uso de métodos Las clases hijas definen acciones especializadas adicionales que no tienen la clase padre, de esta forma las hijas, seguiran haciendo una sola cosa bien, la clase padre es generalista y las hijas especialistas. GalletaRectangular gr = new GalletaRectangular(); gr.Congelar(); gr.FechaDeVencimiento(); Congelar es una acción nueva definida solo en la clase hija Acción heredada de la clase padre, que comparten las clases hijas. No se redefine 8/14@xacarana
  • 9. Manejo de referencias Teniendo en cuenta la relación “es un” presente entre la clase padre y la clase hija, se pueden usar la clase padre como variable contenedora de sus hijas, la clase padre actua como una envoltura (wrapper) Galleta galleta = new GalletaRectangular(); galleta.FechaVencimiento(); Console.WriteLine(galleta.Nombre); Se invoca una acción de la clase padre, que ha sido here- dada Otra forma de acceder a los getters heredados 9/14@xacarana
  • 10. Casting Se refiere a una operación de conversión entre dos tipos de datos diferentes pero que pueden llegar a ser compatibles porque comparten propiedades, acciones o pertenencen al mismo conjunto. Si hablamos de números, el casting es el proceso de convertir un número en otro compatible Si hablamos de clases, el cast- ing es el proceso de convertir una clase a otra compatible. Si hay una relación de herencia, es posible realizar casting. 5 5.0 int double GalletaFortuna Galleta 10/14@xacarana
  • 11. Casting implícito Se realiza un casting implícito cuando la conversión entre datos se puede hacer de manera transparente, es decir sin que se afecten las operaciones que se vayan a realizar con los datos luego de la conversión 5 int x x = y 5.3 double y y = 5.3 y * 2 x5 5.0 int x double y x = 5 y = x y * 2 Pérdida de datos Error al realizar la conversión Este error, se detecta en tiempo de compilación 11/14@xacarana
  • 12. Casting explícito Se presenta cuando la conversión se puede realizar porque hay dos tipos compatibles, pero no es obvía o puede traer problemas de precisión en las operaciones entre variables. Galleta gr = new GalletaRectangular(); ((GalletaRectangular)gr).Congelar(); int x = (int)Math.PI; Se convierte el objeto a su tipo específico y luego se usa una acción. Pérdida de precisión, el casting autoriza la operación 12/14@xacarana
  • 13. Polimorfismo Al comportamiento que asume la clase padre como wrapper contenedor, se le conoce como polimorfismo, ya que una referencia de un tipo padre, puede asumir el rol de cualquiera de sus hijas, esto hace que sea versatil y una forma de guardar una referencia que puede conteneer cualquier clase hija. La referencia se convierte en la base que puede contener a sus hijas, las cuales son diferentes y especializadas, pero tienen similitudes, ya que ex- tiende de un mismo padre. El arreglo de tipo Galleta, puede contener galletas hijas de diferente tipo, las cuales tienen en común que son Galletas, por la relación de herencia. Galleta[] hijas = {new GalletaRectangular(), new Oreo(), new Fortuna()}; 13/14@xacarana
  • 14. Ejercicios • Crear 5 clases diferentes que hereden de un concepto en común • Crear una clase que tenga una herencia de varios niveles, por ejemplo GalletaHelado, hereda de GalletaCuadrada y Galleta cuadrada hereda de Galleta. GalletaHelado es nivel 3. • ¿De cuantas clases puede heredar una clase hija? • Crear un arreglo de una clase Padre, crear instancias de clases hijas y por medio de un ciclo, recorrer el arreglo e invocar un método en común. • Crear el diagrama de clases de la clase Animal, Tiburon, Leon, Tortuga, Mico, Loro. Ob- serve que hay animales terrestres, acuaticos y areos, evidence estas propiedades en el diagrama. • En una jerarquía de 5 clases, cree una instancia de la última clase y la guarda en una referencia de la clase padre, luego por medio de casting explicito, llame métodos pre- sentes en cada clase especifica. • Cree tres clases hijas, con diferentes constructores que permitan inicializar miembros datos propios y heredados • ¿Cual es el valor por defecto de los miembros datos de una clase hija? ¿Y el valor por defecto de miembros dato heredados? 14/14@xacarana