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

Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
Omarzingm
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 

La actualidad más candente (20)

Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacion
 
Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
 
Arreglos en Pseint
Arreglos en PseintArreglos en Pseint
Arreglos en Pseint
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Estructura de Datos (LISTAS, COLAS, PILAS)
Estructura de Datos (LISTAS, COLAS, PILAS)Estructura de Datos (LISTAS, COLAS, PILAS)
Estructura de Datos (LISTAS, COLAS, PILAS)
 
Archivos secuenciales en PYTHON
Archivos secuenciales en PYTHONArchivos secuenciales en PYTHON
Archivos secuenciales en PYTHON
 
Que es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetosQue es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Metodo burbuja
Metodo burbujaMetodo burbuja
Metodo burbuja
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Arreglos bidimensionales
Arreglos bidimensionalesArreglos bidimensionales
Arreglos bidimensionales
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
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
 
Elementos caracteristicos de la poo
Elementos caracteristicos de la pooElementos caracteristicos de la poo
Elementos caracteristicos de la poo
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Paradigma Programación Orientada a Objetos (POO)
Paradigma Programación Orientada a Objetos (POO)Paradigma Programación Orientada a Objetos (POO)
Paradigma Programación Orientada a Objetos (POO)
 

Destacado (8)

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)
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
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

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
 
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdfDialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
arturocastellanos569
 
LOS PLANOS FOTOGRAFIA PARA TODOS LOS INTERESADOS.pdf
LOS PLANOS FOTOGRAFIA PARA TODOS LOS INTERESADOS.pdfLOS PLANOS FOTOGRAFIA PARA TODOS LOS INTERESADOS.pdf
LOS PLANOS FOTOGRAFIA PARA TODOS LOS INTERESADOS.pdf
Computo7
 
5.1-La 1ª parte del reinado de Alfonso XIII y los proyectos de regeneracionis...
5.1-La 1ª parte del reinado de Alfonso XIII y los proyectos de regeneracionis...5.1-La 1ª parte del reinado de Alfonso XIII y los proyectos de regeneracionis...
5.1-La 1ª parte del reinado de Alfonso XIII y los proyectos de regeneracionis...
jose880240
 
-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
 
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
 
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
 
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
 

Último (18)

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
 
3.7 Teoria General de la Fotografia de Manchas de Sangre.pdf
3.7 Teoria General de la Fotografia de Manchas de Sangre.pdf3.7 Teoria General de la Fotografia de Manchas de Sangre.pdf
3.7 Teoria General de la Fotografia de Manchas de Sangre.pdf
 
picasso, resumen de su obra pictorica.pptx
picasso, resumen de su obra pictorica.pptxpicasso, resumen de su obra pictorica.pptx
picasso, resumen de su obra pictorica.pptx
 
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
 
Fundamentos del concreto armado propiedades .pptx
Fundamentos del concreto armado propiedades .pptxFundamentos del concreto armado propiedades .pptx
Fundamentos del concreto armado propiedades .pptx
 
ASÍ CANTAN A LA MADRE Culturas y canciones. Intérpretes, autores y compositor...
ASÍ CANTAN A LA MADRE Culturas y canciones. Intérpretes, autores y compositor...ASÍ CANTAN A LA MADRE Culturas y canciones. Intérpretes, autores y compositor...
ASÍ CANTAN A LA MADRE Culturas y canciones. Intérpretes, autores y compositor...
 
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
 
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdfDialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
Dialnet-DesafiosDeLaGestionDelTransporteYLogisticaEnLosCen-8399928.pdf
 
3.3 Conceptos previos sobre Lugar de Hecho.pdf
3.3 Conceptos previos sobre Lugar de Hecho.pdf3.3 Conceptos previos sobre Lugar de Hecho.pdf
3.3 Conceptos previos sobre Lugar de Hecho.pdf
 
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
 
LOS PLANOS FOTOGRAFIA PARA TODOS LOS INTERESADOS.pdf
LOS PLANOS FOTOGRAFIA PARA TODOS LOS INTERESADOS.pdfLOS PLANOS FOTOGRAFIA PARA TODOS LOS INTERESADOS.pdf
LOS PLANOS FOTOGRAFIA PARA TODOS LOS INTERESADOS.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
 
5.1-La 1ª parte del reinado de Alfonso XIII y los proyectos de regeneracionis...
5.1-La 1ª parte del reinado de Alfonso XIII y los proyectos de regeneracionis...5.1-La 1ª parte del reinado de Alfonso XIII y los proyectos de regeneracionis...
5.1-La 1ª parte del reinado de Alfonso XIII y los proyectos de regeneracionis...
 
-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
 
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
 
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.
 
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
 
Concursos Educativos Escolares 2024-AMILCAR.pdf
Concursos Educativos Escolares 2024-AMILCAR.pdfConcursos Educativos Escolares 2024-AMILCAR.pdf
Concursos Educativos Escolares 2024-AMILCAR.pdf
 

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,