SlideShare una empresa de Scribd logo
1 de 23
Lenguajes de Programación:
Herencia, Polimorfismo, Uml
Autor(es): • Mtr. Luis Fernando Aguas
CONCEPTO Y JUSTIFICACIÓN DE LA
HERENCIA
 La clase que hereda se denomina subclase o
clase derivada.
 La clase de la cual se hereda se denomina
superclase o clase base.
Concepto y justificación de la
herencia
 Todo objeto de una subclase es un objeto de
la superclase de la cual deriva.
Concepto y justificación de la
herencia
 Las subclases pueden redefinir los métodos y
atributos de la clase padre y añadir otros
nuevos.
JERARQUIA DE CALSES
 Las subclases de una clase pueden ser a su vez
superclases de otras clases. Esto da lugar a
jerarquías de clases.
 → Jerarquías de Generalización/Especialización que
son relaciones conceptuales ‘
EJEMPLOS:
 Libros y Revistas tienen propiedades comunes.
 Una Pila puede definirse a partir de una Cola o
viceversa.
 Un Rectángulo es una especialización de Polígono
 Puede haber distintos tipos de Cuentas.
JERARQUIA DE CALSES
GENERALIZACI
ON
ESPECIALIZACI
ON
Se detectan clases con un
comportamiento común.
Ejemplo: Triangulo y
polígono son figuras.
Se detecta que una clase
es un caso especial de otra
Ejemplo: Triangulo es un
tipo de Polígono.
No hay
receta
mágica para
crear buenas
jerarquías
Tipos de herencia
 Herencia simple Una clase
puede heredar de una única
clase.
Ejemplo: Java, C#
 Herencia múltiple Una clase
puede heredar de varias
clases. Clases forman un grafo
dirigido acíclico.
Ejemplos: Eiffel, C++
La sintaxis que indica la herencia en
JAVA
 Para indicar que una clase hereda sus atributos
y métodos de otra, en Java se utiliza la palabra
clave extends. Herencia Simple class subclase
extends superclase:
public class Vocal extends Letra
 Clase persona
public class Persona {
String nombre = "";
int edad;
public Persona(String nom, int ed) {
nombre = nom;
edad = ed;
}
public void mostrar() { System.out.println("Nombre: "+ nombre);
System.out.println("Edad: "+ edad);
}
public static void main(String args[]) {
Persona yo= new Persona("Balta", 99);
yo.mostrar(); } }
La sintaxis que indica la herencia en
JAVA
 Clase trabajador
public class Trabajador extends Persona {
float sueldoHora;
int numHoras;
public Trabajador(String nom, int ed, float suel, int num) {
super(nom, ed); // llamada al constructor de Persona
sueldoHora = suel;
numHoras = num;}
public double sueldo() {
return sueldoHora * numHoras; }
Trabajador yo= new Trabajador("Balta", 99, 200.5f, 45);
yo.mostrar(); // se invoca al método heredado mostrar
double pelas = yo.sueldo();
System.out.println("Cobra: " + pelas); }
}
La sintaxis que indica la herencia en
JAVA
Herencia y Reglas de Acceso
 Existen cuatro posibles visibilidades de atributos
ymétodos:
 De más restrictivo a menos:
 private
 visible sólo en la clase donde se define.
 Sin modificador (por defecto)
 visible a las clases del paquete.
 protected
 visible a las subclases y al resto de clases del
paquete.
 public
 visible a todas las clases.
Herencia y Reglas de Acceso
class Vuelo {
char nombre[30]; // private (por defecto)
int capacidad; // private (por defecto)
private:
float peso; // private
protected:
void carga(&operacion}; // protected
public:
void despegue(&operacion}; // public
void crucero(&operacion); // public
char* getName(); // obtener el nombre del vuelo
};
Evitando la herencia
 Se puede evitar que una clase sea heredada:
public final class
Clase
Paquetes
 Los paquetes son contenedores de clases que
permite delimitar el espacio en el cual una clase
existe.
 Los paquetes permiten que exista más de una
clase con el mismo nombre.
 Para indicar que una clase pertenece a un cierto
paquete, se utiliza la palabra clave package
 La forma de esta sentencia es:
package nombrePaquete;
Constructores y destructores
 Constructor es un:
 Método que inicializa el objeto en su creación.
 Se llama automáticamente cuando se crea un
objeto.
 Su nombre es igual que el de la clase y no
tiene tipo de retorno.
 Java proporciona un constructor sin
parámetros por defecto que deja de estar
disponible cuando se añade algún constructor.
Constructores y destructores
 Destructor es un:
 Es un método perteneciente a una clase que
es ejecutado de forma automática cuando un
objeto es destruido. Java no soporta los
destructores.
Constructores y destructores en
herencia
 En principio se hereda todo menos:
 Constructor y destructor
 Aunque no se heredan ni el constructor ni el
destructor de la clase base, cuando se crea
o se destruye un objeto de la clase derivada
se invocan automáticamente los de la clase
base. Se usa el constructor por defecto (es
decir sin parámetros).
Constructores y destructores en
herencia
 Antes ejecutarse el cuerpo de un constructor
se debe llamar a su constructor base.En Java
se utiliza la palabra reservada super.
public Rectangulo(int x,int y,int ancho,int
alto) {
super(x,y);
this.ancho=ancho;
this.alto=alto;
}
Constructores y destructores en
herencia
 Al contrario que con los constructores, una
funcion destructor de una clase derivada se
ejecuta antes que el destructor de la clase
base. (los destructores no se heredan).
 Ejemplo :
Constructores y destructores en
herencia
class Punto{
private int x;
private int y;
public Punto () {
x=0;
y=0;
}
public Punto (int x, int y){
this.x=x;
this.y=y;
}
public int darX(){return
x;}
public int darY(){return
y;}
public void cambiarX (int
val) {x=val;}
public void cambiarY (int
val) {y=val;}
}
class Tripleta extends
Punto {
int z;
public Tripleta() {
cambiarX(0);
cambiarY(0);
z = 0;
}
int darZ() { return z; }
void cambiarZ(int val)
{ z = val; }
}
 Cuando creamos un
objeto con:
Tripleta t = new Tripleta (1, 2,
3);
 Se llama al constructor
con parámetros, con
parámetros de Tripleta.
 Una mejora a este
método sería:
public Tripleta(int vx, int vy, int
vz) {
super (vx,vy);
z = vz;
}
public Tripleta(int vx,
int vy, int vz) {
cambiarX(vx);
cambiarY(vy);
z = vz; }
HERENCIA MULTIPLE
 En el language Java no existe la herencia
multiple, si no que se puede simular con las
interfaces.
 En c# no se permite la herencia múltiple, lo
que quiere decir que no se puede heredar de
mas de una clase a la vez; si lo vemos de una
forma sencilla la herencia no es mas que la
facultad de un objeto de heredar
características de otro.
 ¿por que se hereda?; si lo vemos del lado de
programación es para poder utilizar métodos,
HERENCIA
Ejemplo de herencia en C#

Más contenido relacionado

La actualidad más candente

5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
K Manuel TN
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
Mario Villaseñor
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
Geovanny Yungán
 

La actualidad más candente (20)

Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Herencia y Polimorfismo en Java
Herencia y Polimorfismo en JavaHerencia y Polimorfismo en Java
Herencia y Polimorfismo en Java
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 
Programación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAProgramación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVA
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Listas
ListasListas
Listas
 
Abstracción de datos
Abstracción de datosAbstracción de datos
Abstracción de datos
 
Python para principiantes
Python para principiantesPython para principiantes
Python para principiantes
 
Estructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la ProgramaciónEstructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la Programación
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Clase math.java
Clase math.javaClase math.java
Clase math.java
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
 

Destacado (7)

Lenguajes de programación: UML
Lenguajes de programación: UMLLenguajes de programación: UML
Lenguajes de programación: UML
 
T2 herencia
T2 herenciaT2 herencia
T2 herencia
 
Programación orientada a objeto(POO)
Programación orientada a objeto(POO)Programación orientada a objeto(POO)
Programación orientada a objeto(POO)
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 

Similar a Lenguajes de Programación: Herencia, Polimorfismo Y UML

Definicion De Subclases Y Herencia H F M
Definicion De Subclases Y Herencia  H F MDefinicion De Subclases Y Herencia  H F M
Definicion De Subclases Y Herencia H F M
angel_toledo
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
FamiliaAyluardo
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
Alexandra Pérez
 

Similar a Lenguajes de Programación: Herencia, Polimorfismo Y UML (20)

Tema2
Tema2Tema2
Tema2
 
Definicion De Subclases Y Herencia H F M
Definicion De Subclases Y Herencia  H F MDefinicion De Subclases Y Herencia  H F M
Definicion De Subclases Y Herencia H F M
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
 
9.herencia en java
9.herencia en java9.herencia en java
9.herencia en java
 
Herencia
HerenciaHerencia
Herencia
 
Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)
 
10.herencia en c++
10.herencia en c++10.herencia en c++
10.herencia en c++
 
Apunte paradigma orientado a objetos
Apunte paradigma orientado a objetosApunte paradigma orientado a objetos
Apunte paradigma orientado a objetos
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
JAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOSJAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOS
 
Java
JavaJava
Java
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
 
Unidad 4: herencia y extensiones
Unidad 4: herencia y extensionesUnidad 4: herencia y extensiones
Unidad 4: herencia y extensiones
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 
Lp2docclases
Lp2docclasesLp2docclases
Lp2docclases
 

Más de Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Último

702009258-Betting-On-You-Lynn-Painter.pdf
702009258-Betting-On-You-Lynn-Painter.pdf702009258-Betting-On-You-Lynn-Painter.pdf
702009258-Betting-On-You-Lynn-Painter.pdf
kevinalexiscastillo1
 
dia de la madre dia de la madre dia de la madre dia de la madres dia de la madre
dia de la madre dia de la madre dia de la madre dia de la madres dia de la madredia de la madre dia de la madre dia de la madre dia de la madres dia de la madre
dia de la madre dia de la madre dia de la madre dia de la madres dia de la madre
VICTORSANTISTEBANALV
 
Reconocimiento y reparación de los exiliados a través del arte - Sofía Leo...
Reconocimiento y reparación de los exiliados a través del arte - Sofía Leo...Reconocimiento y reparación de los exiliados a través del arte - Sofía Leo...
Reconocimiento y reparación de los exiliados a través del arte - Sofía Leo...
Aeroux
 
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdfDialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
arturocastellanos569
 
TRIPTICO LA CADENA ALIMENTICIA PARA EL CONSUMO HUMANO (2).pdf
TRIPTICO LA CADENA ALIMENTICIA PARA EL CONSUMO HUMANO (2).pdfTRIPTICO LA CADENA ALIMENTICIA PARA EL CONSUMO HUMANO (2).pdf
TRIPTICO LA CADENA ALIMENTICIA PARA EL CONSUMO HUMANO (2).pdf
javierchana780
 
Un tiempo para mí cuaderno de trabajo Tutoría para 3.° Secundaria.pdf
Un tiempo para mí cuaderno de trabajo Tutoría para 3.° Secundaria.pdfUn tiempo para mí cuaderno de trabajo Tutoría para 3.° Secundaria.pdf
Un tiempo para mí cuaderno de trabajo Tutoría para 3.° Secundaria.pdf
dianavillegaschiroqu
 
planeacion de encuentros pedagogicos atencion primera infancia
planeacion de encuentros pedagogicos atencion primera infanciaplaneacion de encuentros pedagogicos atencion primera infancia
planeacion de encuentros pedagogicos atencion primera infancia
IbethRincon
 
Leyendo una obra: presentación de las hermanas Sanromán.
Leyendo una obra: presentación de las hermanas Sanromán.Leyendo una obra: presentación de las hermanas Sanromán.
Leyendo una obra: presentación de las hermanas Sanromán.
nixnixnix15dani
 
-7dia de la madre 2024 DISCURSO PARA EL DIA DE LA MADRES.docx
-7dia de la madre 2024 DISCURSO PARA EL DIA DE LA MADRES.docx-7dia de la madre 2024 DISCURSO PARA EL DIA DE LA MADRES.docx
-7dia de la madre 2024 DISCURSO PARA EL DIA DE LA MADRES.docx
ykiara
 
teoriasymodelosdeenfermeria-190315005411.pptx
teoriasymodelosdeenfermeria-190315005411.pptxteoriasymodelosdeenfermeria-190315005411.pptx
teoriasymodelosdeenfermeria-190315005411.pptx
djosemagarino
 
Infografia de El Minierismo reflejado en la Arquitectura
Infografia de El Minierismo reflejado en la ArquitecturaInfografia de El Minierismo reflejado en la Arquitectura
Infografia de El Minierismo reflejado en la Arquitectura
frenyergt23
 

Último (20)

702009258-Betting-On-You-Lynn-Painter.pdf
702009258-Betting-On-You-Lynn-Painter.pdf702009258-Betting-On-You-Lynn-Painter.pdf
702009258-Betting-On-You-Lynn-Painter.pdf
 
Elaboracion regalo dia de las madres.pdf
Elaboracion regalo dia de las madres.pdfElaboracion regalo dia de las madres.pdf
Elaboracion regalo dia de las madres.pdf
 
El Legado de Walter Gropius y Frank Lloyd Wright en la Arquitectura Moderna_c...
El Legado de Walter Gropius y Frank Lloyd Wright en la Arquitectura Moderna_c...El Legado de Walter Gropius y Frank Lloyd Wright en la Arquitectura Moderna_c...
El Legado de Walter Gropius y Frank Lloyd Wright en la Arquitectura Moderna_c...
 
dia de la madre dia de la madre dia de la madre dia de la madres dia de la madre
dia de la madre dia de la madre dia de la madre dia de la madres dia de la madredia de la madre dia de la madre dia de la madre dia de la madres dia de la madre
dia de la madre dia de la madre dia de la madre dia de la madres dia de la madre
 
Reconocimiento y reparación de los exiliados a través del arte - Sofía Leo...
Reconocimiento y reparación de los exiliados a través del arte - Sofía Leo...Reconocimiento y reparación de los exiliados a través del arte - Sofía Leo...
Reconocimiento y reparación de los exiliados a través del arte - Sofía Leo...
 
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdfDialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
 
TRIPTICO LA CADENA ALIMENTICIA PARA EL CONSUMO HUMANO (2).pdf
TRIPTICO LA CADENA ALIMENTICIA PARA EL CONSUMO HUMANO (2).pdfTRIPTICO LA CADENA ALIMENTICIA PARA EL CONSUMO HUMANO (2).pdf
TRIPTICO LA CADENA ALIMENTICIA PARA EL CONSUMO HUMANO (2).pdf
 
Un tiempo para mí cuaderno de trabajo Tutoría para 3.° Secundaria.pdf
Un tiempo para mí cuaderno de trabajo Tutoría para 3.° Secundaria.pdfUn tiempo para mí cuaderno de trabajo Tutoría para 3.° Secundaria.pdf
Un tiempo para mí cuaderno de trabajo Tutoría para 3.° Secundaria.pdf
 
planeacion de encuentros pedagogicos atencion primera infancia
planeacion de encuentros pedagogicos atencion primera infanciaplaneacion de encuentros pedagogicos atencion primera infancia
planeacion de encuentros pedagogicos atencion primera infancia
 
Leyendo una obra: presentación de las hermanas Sanromán.
Leyendo una obra: presentación de las hermanas Sanromán.Leyendo una obra: presentación de las hermanas Sanromán.
Leyendo una obra: presentación de las hermanas Sanromán.
 
-7dia de la madre 2024 DISCURSO PARA EL DIA DE LA MADRES.docx
-7dia de la madre 2024 DISCURSO PARA EL DIA DE LA MADRES.docx-7dia de la madre 2024 DISCURSO PARA EL DIA DE LA MADRES.docx
-7dia de la madre 2024 DISCURSO PARA EL DIA DE LA MADRES.docx
 
EXPONENTES DEL MODERNISMO-VIRGINIA PRIETO.pdf
EXPONENTES DEL MODERNISMO-VIRGINIA PRIETO.pdfEXPONENTES DEL MODERNISMO-VIRGINIA PRIETO.pdf
EXPONENTES DEL MODERNISMO-VIRGINIA PRIETO.pdf
 
PRESENTACION EL DIA DE LA MADRE POR SU DIA
PRESENTACION EL DIA DE LA MADRE POR SU DIAPRESENTACION EL DIA DE LA MADRE POR SU DIA
PRESENTACION EL DIA DE LA MADRE POR SU DIA
 
Módulo de teoría sobre fotografía pericial
Módulo de teoría sobre fotografía pericialMódulo de teoría sobre fotografía pericial
Módulo de teoría sobre fotografía pericial
 
música de la Región caribe colombiana .pptx
música de la Región caribe colombiana .pptxmúsica de la Región caribe colombiana .pptx
música de la Región caribe colombiana .pptx
 
teoriasymodelosdeenfermeria-190315005411.pptx
teoriasymodelosdeenfermeria-190315005411.pptxteoriasymodelosdeenfermeria-190315005411.pptx
teoriasymodelosdeenfermeria-190315005411.pptx
 
El marinerismo y sus características en la arquitectura
El marinerismo y sus características en la arquitecturaEl marinerismo y sus características en la arquitectura
El marinerismo y sus características en la arquitectura
 
Fundamentos del concreto armado propiedades .pptx
Fundamentos del concreto armado propiedades .pptxFundamentos del concreto armado propiedades .pptx
Fundamentos del concreto armado propiedades .pptx
 
CONSECUENCIAS DE LA DIGLOSIA EN LA EDUCACION^J.pptx
CONSECUENCIAS DE LA DIGLOSIA EN LA EDUCACION^J.pptxCONSECUENCIAS DE LA DIGLOSIA EN LA EDUCACION^J.pptx
CONSECUENCIAS DE LA DIGLOSIA EN LA EDUCACION^J.pptx
 
Infografia de El Minierismo reflejado en la Arquitectura
Infografia de El Minierismo reflejado en la ArquitecturaInfografia de El Minierismo reflejado en la Arquitectura
Infografia de El Minierismo reflejado en la Arquitectura
 

Lenguajes de Programación: Herencia, Polimorfismo Y UML

  • 1. Lenguajes de Programación: Herencia, Polimorfismo, Uml Autor(es): • Mtr. Luis Fernando Aguas
  • 2. CONCEPTO Y JUSTIFICACIÓN DE LA HERENCIA  La clase que hereda se denomina subclase o clase derivada.  La clase de la cual se hereda se denomina superclase o clase base.
  • 3. Concepto y justificación de la herencia  Todo objeto de una subclase es un objeto de la superclase de la cual deriva.
  • 4. Concepto y justificación de la herencia  Las subclases pueden redefinir los métodos y atributos de la clase padre y añadir otros nuevos.
  • 5. JERARQUIA DE CALSES  Las subclases de una clase pueden ser a su vez superclases de otras clases. Esto da lugar a jerarquías de clases.  → Jerarquías de Generalización/Especialización que son relaciones conceptuales ‘ EJEMPLOS:  Libros y Revistas tienen propiedades comunes.  Una Pila puede definirse a partir de una Cola o viceversa.  Un Rectángulo es una especialización de Polígono  Puede haber distintos tipos de Cuentas.
  • 6. JERARQUIA DE CALSES GENERALIZACI ON ESPECIALIZACI ON Se detectan clases con un comportamiento común. Ejemplo: Triangulo y polígono son figuras. Se detecta que una clase es un caso especial de otra Ejemplo: Triangulo es un tipo de Polígono. No hay receta mágica para crear buenas jerarquías
  • 7. Tipos de herencia  Herencia simple Una clase puede heredar de una única clase. Ejemplo: Java, C#  Herencia múltiple Una clase puede heredar de varias clases. Clases forman un grafo dirigido acíclico. Ejemplos: Eiffel, C++
  • 8. La sintaxis que indica la herencia en JAVA  Para indicar que una clase hereda sus atributos y métodos de otra, en Java se utiliza la palabra clave extends. Herencia Simple class subclase extends superclase: public class Vocal extends Letra
  • 9.  Clase persona public class Persona { String nombre = ""; int edad; public Persona(String nom, int ed) { nombre = nom; edad = ed; } public void mostrar() { System.out.println("Nombre: "+ nombre); System.out.println("Edad: "+ edad); } public static void main(String args[]) { Persona yo= new Persona("Balta", 99); yo.mostrar(); } } La sintaxis que indica la herencia en JAVA
  • 10.  Clase trabajador public class Trabajador extends Persona { float sueldoHora; int numHoras; public Trabajador(String nom, int ed, float suel, int num) { super(nom, ed); // llamada al constructor de Persona sueldoHora = suel; numHoras = num;} public double sueldo() { return sueldoHora * numHoras; } Trabajador yo= new Trabajador("Balta", 99, 200.5f, 45); yo.mostrar(); // se invoca al método heredado mostrar double pelas = yo.sueldo(); System.out.println("Cobra: " + pelas); } } La sintaxis que indica la herencia en JAVA
  • 11. Herencia y Reglas de Acceso  Existen cuatro posibles visibilidades de atributos ymétodos:  De más restrictivo a menos:  private  visible sólo en la clase donde se define.  Sin modificador (por defecto)  visible a las clases del paquete.  protected  visible a las subclases y al resto de clases del paquete.  public  visible a todas las clases.
  • 12. Herencia y Reglas de Acceso class Vuelo { char nombre[30]; // private (por defecto) int capacidad; // private (por defecto) private: float peso; // private protected: void carga(&operacion}; // protected public: void despegue(&operacion}; // public void crucero(&operacion); // public char* getName(); // obtener el nombre del vuelo };
  • 13. Evitando la herencia  Se puede evitar que una clase sea heredada: public final class Clase
  • 14. Paquetes  Los paquetes son contenedores de clases que permite delimitar el espacio en el cual una clase existe.  Los paquetes permiten que exista más de una clase con el mismo nombre.  Para indicar que una clase pertenece a un cierto paquete, se utiliza la palabra clave package  La forma de esta sentencia es: package nombrePaquete;
  • 15. Constructores y destructores  Constructor es un:  Método que inicializa el objeto en su creación.  Se llama automáticamente cuando se crea un objeto.  Su nombre es igual que el de la clase y no tiene tipo de retorno.  Java proporciona un constructor sin parámetros por defecto que deja de estar disponible cuando se añade algún constructor.
  • 16. Constructores y destructores  Destructor es un:  Es un método perteneciente a una clase que es ejecutado de forma automática cuando un objeto es destruido. Java no soporta los destructores.
  • 17. Constructores y destructores en herencia  En principio se hereda todo menos:  Constructor y destructor  Aunque no se heredan ni el constructor ni el destructor de la clase base, cuando se crea o se destruye un objeto de la clase derivada se invocan automáticamente los de la clase base. Se usa el constructor por defecto (es decir sin parámetros).
  • 18. Constructores y destructores en herencia  Antes ejecutarse el cuerpo de un constructor se debe llamar a su constructor base.En Java se utiliza la palabra reservada super. public Rectangulo(int x,int y,int ancho,int alto) { super(x,y); this.ancho=ancho; this.alto=alto; }
  • 19. Constructores y destructores en herencia  Al contrario que con los constructores, una funcion destructor de una clase derivada se ejecuta antes que el destructor de la clase base. (los destructores no se heredan).  Ejemplo :
  • 20. Constructores y destructores en herencia class Punto{ private int x; private int y; public Punto () { x=0; y=0; } public Punto (int x, int y){ this.x=x; this.y=y; } public int darX(){return x;} public int darY(){return y;} public void cambiarX (int val) {x=val;} public void cambiarY (int val) {y=val;} } class Tripleta extends Punto { int z; public Tripleta() { cambiarX(0); cambiarY(0); z = 0; } int darZ() { return z; } void cambiarZ(int val) { z = val; } }  Cuando creamos un objeto con: Tripleta t = new Tripleta (1, 2, 3);  Se llama al constructor con parámetros, con parámetros de Tripleta.  Una mejora a este método sería: public Tripleta(int vx, int vy, int vz) { super (vx,vy); z = vz; } public Tripleta(int vx, int vy, int vz) { cambiarX(vx); cambiarY(vy); z = vz; }
  • 21. HERENCIA MULTIPLE  En el language Java no existe la herencia multiple, si no que se puede simular con las interfaces.  En c# no se permite la herencia múltiple, lo que quiere decir que no se puede heredar de mas de una clase a la vez; si lo vemos de una forma sencilla la herencia no es mas que la facultad de un objeto de heredar características de otro.  ¿por que se hereda?; si lo vemos del lado de programación es para poder utilizar métodos,