Вы находитесь на странице: 1из 8

Unidad 3.

Características de POO y excepcio

Actividad 2

Nombre: Juan Ignacio Carranza Maravilla


Matricula: ES1921009981
Grupo: DS-DPO1-2001-B2-010
Docente: Eduardo Valdés Maya

Herencia y Polimorfismo. Fase 2

14 mayo 2020
Programación orientada a objetos I

Programación orientada a
objetos I

Índice
1.- INTRODUCCIÓN.............................................................................................3

2.-DESARROLLO.................................................................................................3

2.1.- SUPERCLASE VEHÍCULO.......................................................................3

2.2.- SUBCLASE SEDAN..................................................................................5

2.3.- SUBCLASE CAMIONETA.........................................................................5

2.4.- CLASE MAIN.............................................................................................6

3.- EVIDENCIA.....................................................................................................7

4.- CONCLUSIONES............................................................................................8

5.- BIBLIOGRAFÍA................................................................................................8

Autor: Juan Ignacio Carranza 2


Maravilla
Programación orientada a objetos I

1.- INTRODUCCIÓN.
Se nos pide analizar un diagrama de clases y en basándonos en el desarrollar
las clases con sus atributos y métodos pertinentes en Java, Describiendo
dentro del código (como comentario) donde aplica herencia y polimorfismo el
diagrama de clases es el siguiente:

2.-DESARROLLO.
Se creará una Superclase con el nombre de Vehículo, 2 Subclases una con el
nombre Sedan y otra con el nombre Camioneta, y una Clase Main para probar
la herencia y el polimorfismo.

2.1.- SUPERCLASE VEHÍCULO.


/*
* Superclase Vehiculo
* crea una clase llamada Vehiculo que usaremos
* para demostrar la herencia y el polimorfismo
*/

package unadm.poo.dpo1_u3_a2;

/**
* @author Juan Ignacio Carranza Maravilla
* UnADM
* Ingeniería en Desarrollo de Software
* Programación orientada a objetos I
* Unidad 3. Características de POO y excepciones
* Actividad 2. Herencia y Polimorfismo. Fase 2

Autor: Juan Ignacio Carranza 3


Maravilla
Programación orientada a objetos I
*/

//declaracion de la clase Vehiculo como Superclase


public class Vehiculo {
//declaramos los parametros como privados
private String marca;
private String modelo;
private int anio;
private double precio;
private String tipo;
//constructor de la clase sin parametros
public Vehiculo(){
}
//constructor de la clase con asignacion de parametros
public Vehiculo(String marca, String modelo, int anio, double precio, String tipo){
//asignamos los valores de los parametros
this.marca = marca;
this.modelo = modelo;
this.anio = anio;
this.precio = precio;
this.tipo = tipo;
}
//metodo setter para parametro marca
public void setMarca(String marca) {
this.marca = marca;
}
//metodo getter para parametro marca
public String getMarca() {
return marca;
}
//metodo setter para parametro modelo
public void setModelo(String modelo) {
this.modelo = modelo;
}
//metodo getter para parametro modelo
public String getModelo() {
return modelo;
}
//metodo setter para parametro anio
public void setAnio(int anio) {
this.anio = anio;
}
//metodo getter para parametro anio
public int getAnio() {
return anio;
}
//metodo setter para parametro precio
public void setPrecio(double precio) {
this.precio = precio;
}
//metodo getter para parametro precio
public double getPrecio() {
return precio;
}
//metodo setter para parametro tipo
public void setTipo(String tipo) {
this.tipo = tipo;
}
//metodo getter para parametro tipo
public String getTipo() {
return tipo;
}
//metodo datosVehiculo imprime en pantalla los datos del vehiculo
public void datosVehiculo(){
System.out.println("Marca: " + this.getMarca());
System.out.println("Modelo: " + this.getModelo());
System.out.println("Año: " + this.getAnio());
System.out.println("Precio: " + this.getPrecio());
System.out.println("Tipo: " + this.getTipo());
}
}//fin de clase

Autor: Juan Ignacio Carranza 4


Maravilla
Programación orientada a objetos I

2.2.- SUBCLASE SEDAN.


/*
* Subclase Sedan
* es una clase extendida de la Superclase
* Vehiculo hereda sus atributos y metodos
*/

package unadm.poo.dpo1_u3_a2;

/**
* @author Juan Ignacio Carranza Maravilla
* UnADM
* Ingeniería en Desarrollo de Software
* Programación orientada a objetos I
* Unidad 3. Características de POO y excepciones
* Actividad 2. Herencia y Polimorfismo. Fase 2
*/

/* declaracion de la clase Sedan como una clase extendida de la clase Vehiculo


* aqui hacemos uso de la herencia, la clase Sedan hereda los atributos y
* metodos de la Superclase Vehiculo
*/
public class Sedan extends Vehiculo {
//declaramos los parametros como privados
private boolean descapotable;
//constructor de la clase sin parametros
public Sedan(){
}
//constructor de la clase con asignacion de parametros
public Sedan(String marca, String modelo, int anio, double precio, String tipo, boolean descapotable){
//utilizamos la herencia de la Superclase
super(marca, modelo, anio, precio, tipo);
this.descapotable = descapotable;
}
//metodo setter para parametro descapotable
public void setDescapotable(boolean descapotable) {
this.descapotable = descapotable;
}
//metodo getter para parametro descapotable
public boolean getDescapotable() {
return descapotable;
}
/* metodo Datos Vehiculo
* aqui hacemos uso del polimorfismo ya que la Superclase tiene un metodo llamado igual
* y en la Subclase lo adecuamos o sobreescribimos a lo que se necesita
* y se imprime los parametros propios de la Subclase
*/
public void datosVehiculo(){
System.out.println("**********************************************");
System.out.println("Estos son los datos del Sedan1");
//llamamos al metodo datosVehiculo de la Superclase usando la herencia
super.datosVehiculo();
System.out.println("Descapotable: " + this.getDescapotable());
System.out.println("**********************************************");
}
}//fin de clase

2.3.- SUBCLASE CAMIONETA.


/*
* Subclase Camioneta
* es una clase extendida de la Superclase
* Vehiculo hereda sus atributos y metodos
*/

package unadm.poo.dpo1_u3_a2;

/**
* @author Juan Ignacio Carranza Maravilla
* UnADM
* Ingeniería en Desarrollo de Software

Autor: Juan Ignacio Carranza 5


Maravilla
Programación orientada a objetos I
* Programación orientada a objetos I
* Unidad 3. Características de POO y excepciones
* Actividad 2. Herencia y Polimorfismo. Fase 2
*/

/* declaracion de la clase Camioneta como una clase extendida de la clase Vehiculo


* aqui hacemos uso de la herencia, la clase Camioneta hereda los atributos y
* metodos de la Superclase Vehiculo
*/
public class Camioneta extends Vehiculo {
//declaramos los parametros como privados
private double capacidadCarga;
private String traccion;
//constructor de la clase sin parametros
public Camioneta(){
}
//constructor de la clase con asignacion de parametros
public Camioneta(String marca, String modelo, int anio, double precio, String tipo, double capacidadCarga, String
traccion){
//utilizamos la herencia de la Superclase
super(marca, modelo, anio, precio, tipo);
this.capacidadCarga = capacidadCarga;
this.traccion = traccion;
}
//metodo setter para parametro capacidadCarga
public void setCapacidadCarga(double capacidadCarga) {
this.capacidadCarga = capacidadCarga;
}
//metodo getter para parametro capacidadCarga
public double getCapacidadCarga() {
return capacidadCarga;
}
//metodo setter para parametro traccion
public void setTraccion(String traccion) {
this.traccion = traccion;
}
//metodo getter para parametro traccion
public String getTraccion() {
return traccion;
}
/* metodo Datos Vehiculo
* aqui hacemos uso del polimorfismo ya que la Superclase tiene un metodo llamado igual
* y en la Subclase lo adecuamos o sobreescribimos a lo que se necesita
* y se imprime los parametros propios de la Subclase
*/
public void datosVehiculo(){
System.out.println("**********************************************");
System.out.println("Estos son los datos de la camioneta1");
//llamamos al metodo datosVehiculo de la Superclase usando la herencia
super.datosVehiculo();
System.out.println("Capacidad Carga: " + this.getCapacidadCarga());
System.out.println("Traccion: " + this.getTraccion());
System.out.println("**********************************************");
}
}//fin de clase

2.4.- CLASE MAIN.


/*
* Clase Main
* La utilizaremos para comprobar la herencia
* y el polimorfismo
*/

package unadm.poo.dpo1_u3_a2;

/**
* @author Juan Ignacio Carranza Maravilla
* UnADM
* Ingeniería en Desarrollo de Software
* Programación orientada a objetos I
* Unidad 3. Características de POO y excepciones

Autor: Juan Ignacio Carranza 6


Maravilla
Programación orientada a objetos I
* Actividad 2. Herencia y Polimorfismo. Fase 2
*/
public class DPO1_U3_A2_JUCM {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//creamos una instancia de la clase Sedan sin asignacion de valores para probar ambas formas
Sedan sedan1 = new Sedan();
//creamos una instancia de la clase Camioneta con asignacio parametros
Camioneta camioneta1 = new Camioneta("Ford","Lobo",2015,550000.26,"Camioneta",600.00,"Trasera");
//asignamos valores a los atributos de la instancia con el metodo setter de cada parametro
//comprobamos la Herencia
sedan1.setMarca("Volkswagen");
sedan1.setModelo("Jetta");
sedan1.setAnio(2010);
sedan1.setPrecio(90000.26);
sedan1.setTipo("Sedan");
sedan1.setDescapotable(true);
//llamamos al metodo datosVehiculo de las dos instancias
//comprobamos el polimorfismo o sobreescritura de metodo
sedan1.datosVehiculo();
camioneta1.datosVehiculo();
}

}//fin de main

3.- EVIDENCIA.
Al correr la aplicación podemos ver que la herencia y el polimorfismo funcionan
en nuestra aplicación:

Autor: Juan Ignacio Carranza 7


Maravilla
Programación orientada a objetos I

4.- CONCLUSIONES.
Con esta actividad pudimos comprender y aplicar el concepto de herencia y
polimorfismo y gracias a eso se pudo obtener códigos más simplificados y
fáciles de entender, se hizo uso de la reutilización de código gracias a la
herencia y sobreescritura de métodos gracias al polimorfismo, una actividad
muy interesante y de mucho aprendizaje.

5.- BIBLIOGRAFÍA.
Universidad Abierta y a Distancia de México (UnADM). Unidad 1. Introducción a Java.
Recuperado el 10 de abril del 2020 de:
https://ceit.unadmexico.mx/contenidos/DCEIT/BLOQUE2/DS/02/DPO1/U1/descargables/DPO1
_U1_Contenido.pdf.

Universidad Abierta y a Distancia de México (UnADM). Unidad 2. Métodos y estructuras de


control. Recuperado el 21 de abril del 2020 de:
https://ceit.unadmexico.mx/contenidos/DCEIT/BLOQUE2/DS/02/DPO1/U2/descargables/DPO1
_U2_Contenido.pdf.

Universidad Abierta y a Distancia de México (UnADM). Unidad 3. Características de POO y


excepciones. Recuperado el 10 de mayo del 2020 de:
https://ceit.unadmexico.mx/contenidos/DCEIT/BLOQUE2/DS/02/DPO1/U3/descargables/DPO1
_U3_Contenido.pdf.

Autor: Juan Ignacio Carranza 8


Maravilla

Вам также может понравиться