SlideShare una empresa de Scribd logo
HERENCIA
Es la característica mas importante y mas potente de la POO por ejemplo en la vida real la
casa del abuelo será heredado por el padre, el mismo que podrá tener sus propios objetos
como un auto, que a la vez dará a sus hijos, después los hijos pueden tener sus propios
objetos personales, que en definitiva son los que mas bienes van a tener a futuro.
MARCO TEORICO
Y todo este principio lo llevamos a la
Programación Orientada a Objetos con el
único objetivo de la reutilización de
código.
MARCO TEORICO
En el ejemplo anterior creamos la clase auto y después me permite crear objetos o instancias a la clase auto, esa clase auto tiene una serie de caracteristicas
y un constructor que daba un estado inicial a cada objeto perteneciente a la clase auto.
Despues surge la necesidad de crear otro tipo de objeto llamado Furgoneta que es parecido pero no es igual.
Podriamos utilizar la clase Auto para definir sus características pero tampoco es real una furgoneta va a tener sus propias caractericas que la distinguen de la
clase auto, como por ejemplo capacidad de carga o capacidad de llevar mas pasajeros.
Si pensamos en el ejemplo de la familia, el abuelo no tiene ni el objeto moto ni el objeto bici, es decir retomando este ejemplo un auto no puede tener ni
capacidad de carga ni capacidad de pasajeros extra.
MARCO TEORICO
Entonces necesitaríamos crear una clase llamada Furgoneta igual a la clase Auto con las mismas variables ya que vemos que comparten
cierto atributos y de hecho nace la reutilización de código simplemente diciendo que la clase Furgoneta herede los atributos comunes de la
clase Auto y después programar las características propias de la furgoneta.
Creamos en Eclipse la clase Furgoneta
package poo;
public class Furgoneta extends Auto {
}
Con extends deciemos que la clase Furgoneta hereda los atributos y
métodos de la clase Auto, naciendo conceptos como Super Clase o
Sub clase
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.
La herencia está fuertemente ligada a la reutilización del código en la OOP. Esto es, el código de cualquiera
de las clases puede ser utilizado sin más que crear una clase derivada de ella, o bien una subclase.
Hay dos tipos de herencia: Herencia Simple y Herencia Múltiple. La primera indica que se pueden definir
nuevas clases solamente a partir de una clase inicial mientras que la segunda indica que se pueden definir
nuevas clases a partir de dos o más clases iniciales. Java sólo permite herencia simple.
MARCO TEORICO
SUPER CLASES Y SUBCLASES
El concepto de herencia conduce a una estructura jerárquica de clases o estructura de árbol, lo cual significa
que en la OOP todas las relaciones entre clases deben ajustarse a dicha estructura.
En esta estructura jerárquica, cada clase tiene sólo una clase padre. La clase padre de cualquier clase es
conocida como su superclase. La clase hija de una superclase es llamada una subclase.
* Una superclase puede tener cualquier número de subclases.
* Una subclase puede tener sólo una superclase.
oA es la superclase de B, C y D.
oD es la superclase de E.
oB, C y D son subclases de A.
oE es una subclase de D.
MARCO TEORICO
clases
Las clases son las plantillas para hacer objetos. Una clase sirve para definir una serie de objetos con propiedades (atributos),
comportamientos (operaciones o métodos), y semántica comunes. Hay que pensar en una clase como un molde. A través de las
clases se obtienen los objetos en sí.
Es decir antes de poder utilizar un objeto se debe definir la clase a la que pertenece, esa definición incluye:
 Sus atributos. Es decir, los datos miembros de esa clase. Los datos pueden ser públicos (accesibles desde otra clase) o
privados (sólo accesibles por código de su propia clase. También se las llama campos.
 Sus métodos. Las funciones miembro de la clase. Son las acciones (u operaciones) que puede realizar la clase.
 Código de inicialización. Para crear una clase normalmente hace falta realizar operaciones previas (es lo que se conoce como
el constructor de la clase).
 Otras clases. Dentro de una clase se pueden definir otras clases (clases internas, son consideradas como asociaciones dentro
de UML).
QUE ES UML?
El Lenguaje Unificado de Modelado (UML, Unified Modeling Language) es un lenguaje estándar, basado en una notación
gráfica, que se utiliza para modelar software. Es un lenguaje de propósito general que pretende ser un estándar mundial y
se utiliza para visualizar, especificar, construir y documentar las diferentes “piezas” de un sistema
Para modelar los programas de forma gráfica, viendo las relaciones entre las clases y cómo colaboran unos objetos con otros,
se prefiere utilizar una notación estándar. por varias razones:
Le permite ir familiarizándose con un lenguaje de modelado estándar
Le permite entender modelos con esta notación.
Además, conviene dejar claro que:
• UML es un lenguaje de modelado
• Java es un lenguaje de implementación
TIPOS DE DIAGRAMAS
Diagramas de Clases
Los diagramas de clases proporcionan una perspectiva estática del código. Se componen de: clases y relaciones
Diagramas de Objetos
Presentan instantáneas de instancias de los elementos que aparecen en los diagramas de clases. En definitiva, muestran un conjunto de
objetos y sus relaciones en un momento concreto (“fotografía” de un momento determinado).
Diagramas de Interacción
En los diagramas de interacción se puede ver el patrón de comportamiento de un conjunto de mensajes intercambiados entre un
conjunto de objetos, dentro de un contexto para lograr un propósito.
Diagramas de secuencia
Diagramas de colaboración
La clase Furgoneta va a tener las características y métodos heredados de la clase Auto mas los
suyos propios, en la vida real un hijo puede heredar de sus padres, tios, amigos, pero en Java no
permite representar esta actitud de la vida real es decir Java no permite la herencia multiple que
de alguna manera quita la potencialidad en el lenguaje lo cual es suplido con la interfaces y otras
técnicas de programación propias de Java.
Ahora programamos las características propias de la Clase Furgoneta
HERENCIA
Public class Furgoneta extends Auto{
Private int capacidad_carga;
Private int plazas_extra;
}
Ahora tenemos que darle un estado inicial a la clase Furgoneta atraves de un constructor
Public class Furgoneta extends Auto{
Private int capacidad_carga;
Private int plazas_extra;
Public Furgoneta (int plazas_extra, int capacidad_carga){
Super();//Llama al constructor de la clase padre con el objetivo de darle
//un estado inicial
this.capacidad_carga=capacidad_carga;
this.plazas_extra=plazas_extra;
}
}
HERENCIA
Ahora vamos a crear un método propio de la clase Furgoneta que nos devuelva la información
de la furgoneta como su capacidad de carga y su capacidad de plazas extras
Public Strig DimedatosFurgoneta(){
Return “La capacidad de carga es”+capacidad_carga+”+capacidad_carga+
“las plazas extras es “+plazas_extras
}
Ahora vamos darle funcionamiento al programa modificando la clase principal Uso_Auto pero
también modificamos el nombre de este programa con Uso_Vehiculo
Public class uso_vehiculo{
Public static void main(String[] args){
Auto Miauto1=new auto();
Miauto1.establece_color(“Rojo”);
Furgoneta Mifurgoneta1=new Furgoneta(7,580);
Mifurgoneta1.establece_color(“azul”);
Mifurgoneta1.configura_asientos(“si”);
Mifurgoneta1.configura_aire(“si”);
//ahora vamos a mostrar en consola los datos
System.out.println(Miauto1.dime_datos_generales()+” “+Miauto1.dime_color());
//ahora vamos a ver los datos de la furgoneta
System.out.println(Furgoneta.dime_datos_generales()+Furgoneta.dimeDatosFurgoneta());
}
}
COMO DISEÑO LA HERENCIA DE MIS CLASES, SI YO EMPIEZO DESDE EL INICO COMO DETERMINO LA
HERENCIA DE LAS CLASES, CUANDO CREO UNA CLASE DE CUAL TIENE QUE HEREDAR. PARA RESOLVER ESTAS
PREGUNTAS TENGO QUE SEGUIR UNA REGLA Y ESTA ES LA DE APLICAR EL TERMINO ES UN EN UN DISEÑO
DE CLASES.
AUTO
FURGONETA
La clase furgoneta hereda de la clase auto todos sus atributos y
métodos y para verificar si el diseño es correcto debemos comprobar
que la SUBCLASE es una SUPERCLASE
Una furgoneta es un Auto, NO
Entonces el diseño de las clases no esta del todo bien creado pues no
aplica el concepto de ES UN
DISEÑO DE CLASES
DISEÑO DE CLASES
VEHICULO
AUTO FURGONETA CAMION MOTO
Primeramente deberíamos haber creado la clase principal VEHICULO , luego programar las características generales
que pueden heredar las otras clases (motor, color, peso) y luego crear las clases restantes donde tengan sus propias
características.
Ahora si podemos contestar lo siguiente:
Un Auto es un vehículo
Una Furgoneta es un vehículo
Un Camión es un vehículo ….
EJEMPLOS DE DISEÑO DE HERENCIA DE CLASES
DISEÑO DE CLASES
Conociendo la regla para diseñar la herencia en clases, vamos a utilizar la clase empleado para generar una nueva llamada Jefe que además
de tener los atributos comunes de la clase Empleado, va a tener sus propios atributos y métodos.
Por ejemplo los Objetos Jefes van a tener un atributo propio como incentivo
La clase empleado sirve o no sirve para crear objetos de tipo jefe.
La clase empleado tal y como esta diseñado no sirve porque no tiene el atributo incentivo.
De pronto podremos crear un método en la clase que pueda cargar un incentivo, pero no es lógico ya que no todos los empleados tienen un
incentivo.
Entonces analizando esto podemos concluir que tenemos que crear una nueva clase llamada Jefe que herede de empleado sus atributos y
métodos.
DISEÑO DE CLASES
class jefes extends Empleado{
public jefes (String nom, double suel,int an,int mes,int dia){
super (nom,suel,an,mes,dia);
}
public void establece_incentivo(double b){
incentivo=b;
}
La clase empleado ya tiene el metodo dame_sueldo y jefatura hereda pero no nos sirve porque este
metodo esta preparado para devolver el sueldo pero jefe tiene incentivo, entonces creamos el metodo
dame_sueldo sobreescribiendo este metodo de la clase principal
public double dame_sueldo(){
double sueldo_jefe=super.dame_sueldo();//almacenar en sueldo_jefe lo que de el metodo
dame_sueldo de la clase padre
return sueldo_jefe + incentivo;
}
private double incentivo;
}
QUE ES ESTO DEL POLIMORFISMO Y EL PRINCIPIO DE SUSTITUCION?
El Polimorfismo esta relacionado con el principio de sustitucion que implica lo siguiente:
Se puede utilizar un objeto de una subclase siempre que el programa espere un objeto de la
superclase.
O lo que es lo mismo Un objeto se puede comportar de diferente forma
dependiendo del contexto.
En Java todas las variables de tipo objeto son polimorficas
Ejemplo.
Empleado empleado1=new Empleado();
empleado1 dependiendo del contexto donde se lo utlice se puede comportar de una forma o
otra o puede adopter una forma diferente.
De ahi el concepto de Polimorfismos (diferentes formas , diferente comportamiento
dependiendo del contexto)
QUE ES ESTO DEL POLIMORFISMO Y EL PRINCIPIO DE SUSTITUCION?
Ahora vamos a crear una instancia de tipo Jefe y luego vamos a intentar almacenarlo en el array misempleados y luego
llamamos al metodo de la clase Jefes establece_incentivo
Ahora vamos a ver el Polimorfismo en accion en la siguiente linea de codigo
Se puede utilizar un objeto de una subclase siempre
que el programa espere un objeto de la superclase.
Que espera almacenemos en la posicion 4 del array un objeto de tipo empleado, sin embargo estamos almacenando
un objeto de tipo jefatura y esto por la regla un jefe es un empleado entonces por ese motivo un objeto de tipo
jefatura podemos almacenarlo.
PRINCIPIO DE SUSTITUCION
QUE ES ESTO DEL POLIMORFISMO Y EL PRINCIPIO DE SUSTITUCION?
Ahora vamos a ver major el polimorfismo analizando los bucles for each del programa
Utlizamos un nombre de variable que sea de tipo objeto (empleado) para recorrer el array misEmpleados
La variable e es de tipo empleado
En la linea e.dame_sueldo estamos llamando al metodo de la clase Empleado. Ahora ejecutemos el programa.
En el Segundo bucle probamos e. para verificar los metodos de la clase Empleado
QUE ES ESTO DEL POLIMORFISMO Y EL PRINCIPIO DE SUSTITUCION ?
• El Id empieza de una forma desordenada es por que primero llama al constructor de empleado y se asigna el Id
como muestra el siguiente codigo
• El campo sueldo verificar su valor y observamos que aparece el polimorfismo
• La variable e al iniciar el bucle se comporta como una variable de tipo empleado, pero al encontrarse con objetos
que pertenecen a la clase jefes, cambia de comportamiento y pasa hacer de tipo jefes
• Esta llamando al metodo dame_sueldo de jefes porque esta agregando un incentive
En definitiva una variable de tipo Objetose comporta de una forma o otra dependiendo del contexto

Más contenido relacionado

La actualidad más candente

Java: Java Applets
Java: Java AppletsJava: Java Applets
Java: Java Applets
Tareq Hasan
 
Java 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional InterfacesJava 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional Interfaces
Ganesh Samarthyam
 
Javapolymorphism
JavapolymorphismJavapolymorphism
Javapolymorphism
karthikenlume
 
Python programming : Inheritance and polymorphism
Python programming : Inheritance and polymorphismPython programming : Inheritance and polymorphism
Python programming : Inheritance and polymorphism
Emertxe Information Technologies Pvt Ltd
 
What is Python Lambda Function? Python Tutorial | Edureka
What is Python Lambda Function? Python Tutorial | EdurekaWhat is Python Lambda Function? Python Tutorial | Edureka
What is Python Lambda Function? Python Tutorial | Edureka
Edureka!
 
Exceptions in python
Exceptions in pythonExceptions in python
JMockit Framework Overview
JMockit Framework OverviewJMockit Framework Overview
JMockit Framework Overview
Mario Peshev
 
Python basics
Python basicsPython basics
Python basics
Jyoti shukla
 
Variable scope in php
Variable scope in phpVariable scope in php
Variable scope in php
MUHAMMED MASHAHIL PUKKUNNUMMAL
 
Python programming workshop session 1
Python programming workshop session 1Python programming workshop session 1
Python programming workshop session 1
Abdul Haseeb
 
Php
PhpPhp
Object oriented programming with python
Object oriented programming with pythonObject oriented programming with python
Object oriented programming with python
Arslan Arshad
 
Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)
Pedro Rodrigues
 
URL Class in JAVA
URL Class in JAVAURL Class in JAVA
URL Class in JAVA
Ramasubbu .P
 
[C++ Korea] Effective Modern C++ Study, Item 1 - 3
[C++ Korea] Effective Modern C++ Study, Item 1 - 3[C++ Korea] Effective Modern C++ Study, Item 1 - 3
[C++ Korea] Effective Modern C++ Study, Item 1 - 3
Chris Ohk
 
Regular Expressions in Java
Regular Expressions in JavaRegular Expressions in Java
Regular Expressions in Java
OblivionWalker
 
What is Multithreading In Python | Python Multithreading Tutorial | Edureka
What is Multithreading In Python | Python Multithreading Tutorial | EdurekaWhat is Multithreading In Python | Python Multithreading Tutorial | Edureka
What is Multithreading In Python | Python Multithreading Tutorial | Edureka
Edureka!
 
Exception handling and function in python
Exception handling and function in pythonException handling and function in python
Exception handling and function in python
TMARAGATHAM
 
PHP - Introduction to Object Oriented Programming with PHP
PHP -  Introduction to  Object Oriented Programming with PHPPHP -  Introduction to  Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
Vibrant Technologies & Computers
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programming
Mahmoud Masih Tehrani
 

La actualidad más candente (20)

Java: Java Applets
Java: Java AppletsJava: Java Applets
Java: Java Applets
 
Java 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional InterfacesJava 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional Interfaces
 
Javapolymorphism
JavapolymorphismJavapolymorphism
Javapolymorphism
 
Python programming : Inheritance and polymorphism
Python programming : Inheritance and polymorphismPython programming : Inheritance and polymorphism
Python programming : Inheritance and polymorphism
 
What is Python Lambda Function? Python Tutorial | Edureka
What is Python Lambda Function? Python Tutorial | EdurekaWhat is Python Lambda Function? Python Tutorial | Edureka
What is Python Lambda Function? Python Tutorial | Edureka
 
Exceptions in python
Exceptions in pythonExceptions in python
Exceptions in python
 
JMockit Framework Overview
JMockit Framework OverviewJMockit Framework Overview
JMockit Framework Overview
 
Python basics
Python basicsPython basics
Python basics
 
Variable scope in php
Variable scope in phpVariable scope in php
Variable scope in php
 
Python programming workshop session 1
Python programming workshop session 1Python programming workshop session 1
Python programming workshop session 1
 
Php
PhpPhp
Php
 
Object oriented programming with python
Object oriented programming with pythonObject oriented programming with python
Object oriented programming with python
 
Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)
 
URL Class in JAVA
URL Class in JAVAURL Class in JAVA
URL Class in JAVA
 
[C++ Korea] Effective Modern C++ Study, Item 1 - 3
[C++ Korea] Effective Modern C++ Study, Item 1 - 3[C++ Korea] Effective Modern C++ Study, Item 1 - 3
[C++ Korea] Effective Modern C++ Study, Item 1 - 3
 
Regular Expressions in Java
Regular Expressions in JavaRegular Expressions in Java
Regular Expressions in Java
 
What is Multithreading In Python | Python Multithreading Tutorial | Edureka
What is Multithreading In Python | Python Multithreading Tutorial | EdurekaWhat is Multithreading In Python | Python Multithreading Tutorial | Edureka
What is Multithreading In Python | Python Multithreading Tutorial | Edureka
 
Exception handling and function in python
Exception handling and function in pythonException handling and function in python
Exception handling and function in python
 
PHP - Introduction to Object Oriented Programming with PHP
PHP -  Introduction to  Object Oriented Programming with PHPPHP -  Introduction to  Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programming
 

Destacado

Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
Cesar Oswaldo Osorio Agualongo
 
Señales posix
Señales posixSeñales posix
P1
P1P1
Memoria dinamica
Memoria dinamicaMemoria dinamica
Basededatosicompleto 091122141836-phpapp02
Basededatosicompleto 091122141836-phpapp02Basededatosicompleto 091122141836-phpapp02
Basededatosicompleto 091122141836-phpapp02
Cesar Oswaldo Osorio Agualongo
 
07 funciones
07 funciones07 funciones
Macros
MacrosMacros
2do parcial c
2do parcial c2do parcial c
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en C
Ronny Parra
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
Cesar Oswaldo Osorio Agualongo
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
Cesar Oswaldo Osorio Agualongo
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
Cesar Oswaldo Osorio Agualongo
 
Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016
Cesar Oswaldo Osorio Agualongo
 
Punteros presentacion
Punteros presentacionPunteros presentacion
Punteros presentacion
Cesar Oswaldo Osorio Agualongo
 
Material estudio c
Material estudio cMaterial estudio c
Material estudio c
Cesar Oswaldo Osorio Agualongo
 
Tipos de datos en programacion
Tipos de datos en programacionTipos de datos en programacion
Tipos de datos en programacion
Alfonso
 
Resumen de los 7 hábitos de la gente altamente efectiv
Resumen de los 7 hábitos de la gente altamente efectivResumen de los 7 hábitos de la gente altamente efectiv
Resumen de los 7 hábitos de la gente altamente efectiv
Edwin Castillo Mendoza
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
guestaacec6b
 

Destacado (19)

Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Señales posix
Señales posixSeñales posix
Señales posix
 
P1
P1P1
P1
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Basededatosicompleto 091122141836-phpapp02
Basededatosicompleto 091122141836-phpapp02Basededatosicompleto 091122141836-phpapp02
Basededatosicompleto 091122141836-phpapp02
 
07 funciones
07 funciones07 funciones
07 funciones
 
Macros
MacrosMacros
Macros
 
2do parcial c
2do parcial c2do parcial c
2do parcial c
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en C
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016
 
Punteros presentacion
Punteros presentacionPunteros presentacion
Punteros presentacion
 
Material estudio c
Material estudio cMaterial estudio c
Material estudio c
 
Tipos de datos en programacion
Tipos de datos en programacionTipos de datos en programacion
Tipos de datos en programacion
 
Resumen de los 7 hábitos de la gente altamente efectiv
Resumen de los 7 hábitos de la gente altamente efectivResumen de los 7 hábitos de la gente altamente efectiv
Resumen de los 7 hábitos de la gente altamente efectiv
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 

Similar a Herencia

Guía Herencia PO_O
Guía Herencia PO_OGuía Herencia PO_O
Guía Herencia PO_O
lissette_torrealba
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
Marisa Torrecillas
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
Jyoc X
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
Jose Antonio
 
Herencia - Java
Herencia - JavaHerencia - Java
Herencia - Java
Pablo Macon
 
Php orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald NinaPhp orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald Nina
Ronald Franz Nina Layme
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
Sterling Rafael Santana Vargas
 
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
Alvaro Enrique Ruano
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
Renny Batista
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
Don Augusto
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
Arigol15Gomez
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Sergio Sanchez
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
Cesar Huamani Ayala
 
Clase y Herencia en VB
Clase y Herencia en VBClase y Herencia en VB
Clase y Herencia en VB
Leonardo Paul Lopez Zambrano
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
Irving Trigo
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
Irving Trigo
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
lhgarzonr
 
Vn-Desarrollo
Vn-DesarrolloVn-Desarrollo
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
ReinaldoGonzlez10
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguez
coruniversitec
 

Similar a Herencia (20)

Guía Herencia PO_O
Guía Herencia PO_OGuía Herencia PO_O
Guía Herencia PO_O
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
Herencia - Java
Herencia - JavaHerencia - Java
Herencia - Java
 
Php orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald NinaPhp orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald Nina
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
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
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Clase y Herencia en VB
Clase y Herencia en VBClase y Herencia en VB
Clase y Herencia en VB
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 
Vn-Desarrollo
Vn-DesarrolloVn-Desarrollo
Vn-Desarrollo
 
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguez
 

Más de Cesar Oswaldo Osorio Agualongo

Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
Cesar Oswaldo Osorio Agualongo
 
Notas 2 do parcial
Notas 2 do parcialNotas 2 do parcial
Notas 2 do parcial
Cesar Oswaldo Osorio Agualongo
 
Repaso excel
Repaso excelRepaso excel
Notas 2490
Notas 2490Notas 2490
Notas 2625
Notas 2625Notas 2625
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
Cesar Oswaldo Osorio Agualongo
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Parte i curso c
Parte i curso cParte i curso c
Punteros y funciones
Punteros y funciones Punteros y funciones
Punteros y funciones
Cesar Oswaldo Osorio Agualongo
 
Algoritmos
AlgoritmosAlgoritmos
Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1
Cesar Oswaldo Osorio Agualongo
 
Programacion semanal programacion i
Programacion semanal programacion iProgramacion semanal programacion i
Programacion semanal programacion i
Cesar Oswaldo Osorio Agualongo
 
Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016
Cesar Oswaldo Osorio Agualongo
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
Cesar Oswaldo Osorio Agualongo
 
Definiciones lideres evaluado
Definiciones lideres evaluadoDefiniciones lideres evaluado
Definiciones lideres evaluado
Cesar Oswaldo Osorio Agualongo
 
Formato de proyecto
Formato de proyectoFormato de proyecto
Formato de proyecto
Cesar Oswaldo Osorio Agualongo
 
Carteles
CartelesCarteles
42705734 manual-basico-de-uso-project-2010
42705734 manual-basico-de-uso-project-201042705734 manual-basico-de-uso-project-2010
42705734 manual-basico-de-uso-project-2010
Cesar Oswaldo Osorio Agualongo
 

Más de Cesar Oswaldo Osorio Agualongo (18)

Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Notas 2 do parcial
Notas 2 do parcialNotas 2 do parcial
Notas 2 do parcial
 
Repaso excel
Repaso excelRepaso excel
Repaso excel
 
Notas 2490
Notas 2490Notas 2490
Notas 2490
 
Notas 2625
Notas 2625Notas 2625
Notas 2625
 
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Punteros y funciones
Punteros y funciones Punteros y funciones
Punteros y funciones
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1
 
Programacion semanal programacion i
Programacion semanal programacion iProgramacion semanal programacion i
Programacion semanal programacion i
 
Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
Definiciones lideres evaluado
Definiciones lideres evaluadoDefiniciones lideres evaluado
Definiciones lideres evaluado
 
Formato de proyecto
Formato de proyectoFormato de proyecto
Formato de proyecto
 
Carteles
CartelesCarteles
Carteles
 
42705734 manual-basico-de-uso-project-2010
42705734 manual-basico-de-uso-project-201042705734 manual-basico-de-uso-project-2010
42705734 manual-basico-de-uso-project-2010
 

Último

ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
JAVIER SOLIS NOYOLA
 
Módulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escrituraMódulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escritura
marilynfloresyomona1
 
Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
LuanaJaime1
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Juan Martín Martín
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
JorgeVillota6
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
Fernández Gorka
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
Mónica Sánchez
 
Escuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdfEscuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdf
Alejandrino Halire Ccahuana
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
JonathanCovena1
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CARMENSnchez854591
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
LudmilaOrtega3
 
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIACONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
ginnazamudio
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
RicardoValdiviaVega
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
AlexDeLonghi
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
israelsouza67
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 

Último (20)

ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
 
Módulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escrituraMódulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escritura
 
Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
 
Escuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdfEscuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdf
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
 
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIACONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 

Herencia

  • 2. Es la característica mas importante y mas potente de la POO por ejemplo en la vida real la casa del abuelo será heredado por el padre, el mismo que podrá tener sus propios objetos como un auto, que a la vez dará a sus hijos, después los hijos pueden tener sus propios objetos personales, que en definitiva son los que mas bienes van a tener a futuro. MARCO TEORICO Y todo este principio lo llevamos a la Programación Orientada a Objetos con el único objetivo de la reutilización de código.
  • 3. MARCO TEORICO En el ejemplo anterior creamos la clase auto y después me permite crear objetos o instancias a la clase auto, esa clase auto tiene una serie de caracteristicas y un constructor que daba un estado inicial a cada objeto perteneciente a la clase auto. Despues surge la necesidad de crear otro tipo de objeto llamado Furgoneta que es parecido pero no es igual. Podriamos utilizar la clase Auto para definir sus características pero tampoco es real una furgoneta va a tener sus propias caractericas que la distinguen de la clase auto, como por ejemplo capacidad de carga o capacidad de llevar mas pasajeros. Si pensamos en el ejemplo de la familia, el abuelo no tiene ni el objeto moto ni el objeto bici, es decir retomando este ejemplo un auto no puede tener ni capacidad de carga ni capacidad de pasajeros extra.
  • 4. MARCO TEORICO Entonces necesitaríamos crear una clase llamada Furgoneta igual a la clase Auto con las mismas variables ya que vemos que comparten cierto atributos y de hecho nace la reutilización de código simplemente diciendo que la clase Furgoneta herede los atributos comunes de la clase Auto y después programar las características propias de la furgoneta. Creamos en Eclipse la clase Furgoneta package poo; public class Furgoneta extends Auto { } Con extends deciemos que la clase Furgoneta hereda los atributos y métodos de la clase Auto, naciendo conceptos como Super Clase o Sub clase
  • 5. 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. La herencia está fuertemente ligada a la reutilización del código en la OOP. Esto es, el código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada de ella, o bien una subclase. Hay dos tipos de herencia: Herencia Simple y Herencia Múltiple. La primera indica que se pueden definir nuevas clases solamente a partir de una clase inicial mientras que la segunda indica que se pueden definir nuevas clases a partir de dos o más clases iniciales. Java sólo permite herencia simple. MARCO TEORICO
  • 6. SUPER CLASES Y SUBCLASES El concepto de herencia conduce a una estructura jerárquica de clases o estructura de árbol, lo cual significa que en la OOP todas las relaciones entre clases deben ajustarse a dicha estructura. En esta estructura jerárquica, cada clase tiene sólo una clase padre. La clase padre de cualquier clase es conocida como su superclase. La clase hija de una superclase es llamada una subclase. * Una superclase puede tener cualquier número de subclases. * Una subclase puede tener sólo una superclase. oA es la superclase de B, C y D. oD es la superclase de E. oB, C y D son subclases de A. oE es una subclase de D.
  • 7. MARCO TEORICO clases Las clases son las plantillas para hacer objetos. Una clase sirve para definir una serie de objetos con propiedades (atributos), comportamientos (operaciones o métodos), y semántica comunes. Hay que pensar en una clase como un molde. A través de las clases se obtienen los objetos en sí. Es decir antes de poder utilizar un objeto se debe definir la clase a la que pertenece, esa definición incluye:  Sus atributos. Es decir, los datos miembros de esa clase. Los datos pueden ser públicos (accesibles desde otra clase) o privados (sólo accesibles por código de su propia clase. También se las llama campos.  Sus métodos. Las funciones miembro de la clase. Son las acciones (u operaciones) que puede realizar la clase.  Código de inicialización. Para crear una clase normalmente hace falta realizar operaciones previas (es lo que se conoce como el constructor de la clase).  Otras clases. Dentro de una clase se pueden definir otras clases (clases internas, son consideradas como asociaciones dentro de UML).
  • 8. QUE ES UML? El Lenguaje Unificado de Modelado (UML, Unified Modeling Language) es un lenguaje estándar, basado en una notación gráfica, que se utiliza para modelar software. Es un lenguaje de propósito general que pretende ser un estándar mundial y se utiliza para visualizar, especificar, construir y documentar las diferentes “piezas” de un sistema Para modelar los programas de forma gráfica, viendo las relaciones entre las clases y cómo colaboran unos objetos con otros, se prefiere utilizar una notación estándar. por varias razones: Le permite ir familiarizándose con un lenguaje de modelado estándar Le permite entender modelos con esta notación. Además, conviene dejar claro que: • UML es un lenguaje de modelado • Java es un lenguaje de implementación
  • 9. TIPOS DE DIAGRAMAS Diagramas de Clases Los diagramas de clases proporcionan una perspectiva estática del código. Se componen de: clases y relaciones Diagramas de Objetos Presentan instantáneas de instancias de los elementos que aparecen en los diagramas de clases. En definitiva, muestran un conjunto de objetos y sus relaciones en un momento concreto (“fotografía” de un momento determinado). Diagramas de Interacción En los diagramas de interacción se puede ver el patrón de comportamiento de un conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un contexto para lograr un propósito. Diagramas de secuencia Diagramas de colaboración
  • 10. La clase Furgoneta va a tener las características y métodos heredados de la clase Auto mas los suyos propios, en la vida real un hijo puede heredar de sus padres, tios, amigos, pero en Java no permite representar esta actitud de la vida real es decir Java no permite la herencia multiple que de alguna manera quita la potencialidad en el lenguaje lo cual es suplido con la interfaces y otras técnicas de programación propias de Java. Ahora programamos las características propias de la Clase Furgoneta HERENCIA Public class Furgoneta extends Auto{ Private int capacidad_carga; Private int plazas_extra; } Ahora tenemos que darle un estado inicial a la clase Furgoneta atraves de un constructor Public class Furgoneta extends Auto{ Private int capacidad_carga; Private int plazas_extra; Public Furgoneta (int plazas_extra, int capacidad_carga){ Super();//Llama al constructor de la clase padre con el objetivo de darle //un estado inicial this.capacidad_carga=capacidad_carga; this.plazas_extra=plazas_extra; } }
  • 11. HERENCIA Ahora vamos a crear un método propio de la clase Furgoneta que nos devuelva la información de la furgoneta como su capacidad de carga y su capacidad de plazas extras Public Strig DimedatosFurgoneta(){ Return “La capacidad de carga es”+capacidad_carga+”+capacidad_carga+ “las plazas extras es “+plazas_extras } Ahora vamos darle funcionamiento al programa modificando la clase principal Uso_Auto pero también modificamos el nombre de este programa con Uso_Vehiculo Public class uso_vehiculo{ Public static void main(String[] args){ Auto Miauto1=new auto(); Miauto1.establece_color(“Rojo”); Furgoneta Mifurgoneta1=new Furgoneta(7,580); Mifurgoneta1.establece_color(“azul”); Mifurgoneta1.configura_asientos(“si”); Mifurgoneta1.configura_aire(“si”); //ahora vamos a mostrar en consola los datos System.out.println(Miauto1.dime_datos_generales()+” “+Miauto1.dime_color()); //ahora vamos a ver los datos de la furgoneta System.out.println(Furgoneta.dime_datos_generales()+Furgoneta.dimeDatosFurgoneta()); } }
  • 12. COMO DISEÑO LA HERENCIA DE MIS CLASES, SI YO EMPIEZO DESDE EL INICO COMO DETERMINO LA HERENCIA DE LAS CLASES, CUANDO CREO UNA CLASE DE CUAL TIENE QUE HEREDAR. PARA RESOLVER ESTAS PREGUNTAS TENGO QUE SEGUIR UNA REGLA Y ESTA ES LA DE APLICAR EL TERMINO ES UN EN UN DISEÑO DE CLASES. AUTO FURGONETA La clase furgoneta hereda de la clase auto todos sus atributos y métodos y para verificar si el diseño es correcto debemos comprobar que la SUBCLASE es una SUPERCLASE Una furgoneta es un Auto, NO Entonces el diseño de las clases no esta del todo bien creado pues no aplica el concepto de ES UN DISEÑO DE CLASES
  • 13. DISEÑO DE CLASES VEHICULO AUTO FURGONETA CAMION MOTO Primeramente deberíamos haber creado la clase principal VEHICULO , luego programar las características generales que pueden heredar las otras clases (motor, color, peso) y luego crear las clases restantes donde tengan sus propias características. Ahora si podemos contestar lo siguiente: Un Auto es un vehículo Una Furgoneta es un vehículo Un Camión es un vehículo ….
  • 14. EJEMPLOS DE DISEÑO DE HERENCIA DE CLASES
  • 15.
  • 16. DISEÑO DE CLASES Conociendo la regla para diseñar la herencia en clases, vamos a utilizar la clase empleado para generar una nueva llamada Jefe que además de tener los atributos comunes de la clase Empleado, va a tener sus propios atributos y métodos. Por ejemplo los Objetos Jefes van a tener un atributo propio como incentivo La clase empleado sirve o no sirve para crear objetos de tipo jefe. La clase empleado tal y como esta diseñado no sirve porque no tiene el atributo incentivo. De pronto podremos crear un método en la clase que pueda cargar un incentivo, pero no es lógico ya que no todos los empleados tienen un incentivo. Entonces analizando esto podemos concluir que tenemos que crear una nueva clase llamada Jefe que herede de empleado sus atributos y métodos.
  • 17. DISEÑO DE CLASES class jefes extends Empleado{ public jefes (String nom, double suel,int an,int mes,int dia){ super (nom,suel,an,mes,dia); } public void establece_incentivo(double b){ incentivo=b; } La clase empleado ya tiene el metodo dame_sueldo y jefatura hereda pero no nos sirve porque este metodo esta preparado para devolver el sueldo pero jefe tiene incentivo, entonces creamos el metodo dame_sueldo sobreescribiendo este metodo de la clase principal public double dame_sueldo(){ double sueldo_jefe=super.dame_sueldo();//almacenar en sueldo_jefe lo que de el metodo dame_sueldo de la clase padre return sueldo_jefe + incentivo; } private double incentivo; }
  • 18. QUE ES ESTO DEL POLIMORFISMO Y EL PRINCIPIO DE SUSTITUCION? El Polimorfismo esta relacionado con el principio de sustitucion que implica lo siguiente: Se puede utilizar un objeto de una subclase siempre que el programa espere un objeto de la superclase. O lo que es lo mismo Un objeto se puede comportar de diferente forma dependiendo del contexto. En Java todas las variables de tipo objeto son polimorficas Ejemplo. Empleado empleado1=new Empleado(); empleado1 dependiendo del contexto donde se lo utlice se puede comportar de una forma o otra o puede adopter una forma diferente. De ahi el concepto de Polimorfismos (diferentes formas , diferente comportamiento dependiendo del contexto)
  • 19. QUE ES ESTO DEL POLIMORFISMO Y EL PRINCIPIO DE SUSTITUCION? Ahora vamos a crear una instancia de tipo Jefe y luego vamos a intentar almacenarlo en el array misempleados y luego llamamos al metodo de la clase Jefes establece_incentivo Ahora vamos a ver el Polimorfismo en accion en la siguiente linea de codigo Se puede utilizar un objeto de una subclase siempre que el programa espere un objeto de la superclase. Que espera almacenemos en la posicion 4 del array un objeto de tipo empleado, sin embargo estamos almacenando un objeto de tipo jefatura y esto por la regla un jefe es un empleado entonces por ese motivo un objeto de tipo jefatura podemos almacenarlo. PRINCIPIO DE SUSTITUCION
  • 20. QUE ES ESTO DEL POLIMORFISMO Y EL PRINCIPIO DE SUSTITUCION? Ahora vamos a ver major el polimorfismo analizando los bucles for each del programa Utlizamos un nombre de variable que sea de tipo objeto (empleado) para recorrer el array misEmpleados La variable e es de tipo empleado En la linea e.dame_sueldo estamos llamando al metodo de la clase Empleado. Ahora ejecutemos el programa. En el Segundo bucle probamos e. para verificar los metodos de la clase Empleado
  • 21. QUE ES ESTO DEL POLIMORFISMO Y EL PRINCIPIO DE SUSTITUCION ? • El Id empieza de una forma desordenada es por que primero llama al constructor de empleado y se asigna el Id como muestra el siguiente codigo • El campo sueldo verificar su valor y observamos que aparece el polimorfismo • La variable e al iniciar el bucle se comporta como una variable de tipo empleado, pero al encontrarse con objetos que pertenecen a la clase jefes, cambia de comportamiento y pasa hacer de tipo jefes • Esta llamando al metodo dame_sueldo de jefes porque esta agregando un incentive En definitiva una variable de tipo Objetose comporta de una forma o otra dependiendo del contexto