Soluciones ejercicios interfaces y abstractas

package com.trifulcas.herencia.ejercicio;

public abstract class Vehiculo {
	private String marca;
	private String modelo;
	private int anyo;
	public Vehiculo(String marca, String modelo, int anyo) {
		super();
		this.marca = marca;
		this.modelo = modelo;
		this.anyo = anyo;
	}
	
	
	/**
	 * @return the marca
	 * 
	 */
	protected String getMarca() {
		return marca;
	}


	


	/**
	 * @return the modelo
	 */
	public String getModelo() {
		return modelo;
	}


	/**
	 * @param modelo the modelo to set
	 */
	public void setModelo(String modelo) {
		this.modelo = modelo;
	}


	/**
	 * @return the anyo
	 */
	public int getAnyo() {
		return anyo;
	}


	/**
	 * @param anyo the anyo to set
	 */
	public void setAnyo(int anyo) {
		this.anyo = anyo;
	}


	public abstract void mostrarDetalles();
	
	public void encender() {
		System.out.println("Vehículo encendido");
	}
}

package com.trifulcas.herencia.ejercicio;

public class Coche extends Vehiculo {

	private int numeroDePuertas;
	public Coche(String marca, String modelo, int anyo, int numeroDePuertas) {
		super(marca, modelo, anyo);
		this.numeroDePuertas=numeroDePuertas;
	}
	
	/**
	 * @return the numeroDePuertas
	 */
	public int getNumeroDePuertas() {
		return numeroDePuertas;
	}

	/**
	 * @param numeroDePuertas the numeroDePuertas to set
	 */
	public void setNumeroDePuertas(int numeroDePuertas) {
		this.numeroDePuertas = numeroDePuertas;
	}

	@Override
	public void mostrarDetalles() {
		System.out.println( getMarca()+" - "+getModelo()+" - "+getAnyo()+" - "+getNumeroDePuertas());
	}

}

package com.trifulcas.herencia.ejercicio;

public class Motocicleta extends Vehiculo {

	public Motocicleta(String marca, String modelo, int anyo, boolean tieneSidecar) {
		super(marca, modelo, anyo);
		this.tieneSidecar=tieneSidecar;
	}

	private boolean tieneSidecar;
	
	/**
	 * @return the tieneSidecar
	 */
	public boolean getTieneSidecar() {
		return tieneSidecar;
	}

	/**
	 * @param tieneSidecar the tieneSidecar to set
	 */
	public void setTieneSidecar(boolean tieneSidecar) {
		this.tieneSidecar = tieneSidecar;
	}

	@Override
	public void mostrarDetalles() {
		System.out.println( getMarca()+" - "+getModelo()+" - "+getAnyo()+" - "+getTieneSidecar());
	}

}

package com.trifulcas.herencia.ejercicio;

public abstract class Empleado {
	private String nombre;
	private int edad;
	private double salario;
	public Empleado(String nombre, int edad, double salario) {
		super();
		this.nombre = nombre;
		this.edad = edad;
		this.salario = salario;
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the edad
	 */
	public int getEdad() {
		return edad;
	}
	/**
	 * @param edad the edad to set
	 */
	public void setEdad(int edad) {
		this.edad = edad;
	}
	/**
	 * @return the salario
	 */
	public double getSalario() {
		return salario;
	}
	/**
	 * @param salario the salario to set
	 */
	public void setSalario(double salario) {
		this.salario = salario;
	}
	
	public abstract double calcularBonificacion();
	
	public void mostrarDetalles() {
		System.out.println(getNombre()+" - "+getEdad()+" - "+getSalario());
	}

}

package com.trifulcas.herencia.ejercicio;

public class EmpleadoMedioTiempo extends Empleado {

	private int horasTrabajadas;

	public EmpleadoMedioTiempo(String nombre, int edad, double salario, int horasTrabajadas) {
		super(nombre, edad, salario);
		this.horasTrabajadas = horasTrabajadas;
	}

	/**
	 * @return the horasTrabajadas
	 */
	public int getHorasTrabajadas() {
		return horasTrabajadas;
	}

	/**
	 * @param horasTrabajadas the horasTrabajadas to set
	 */
	public void setHorasTrabajadas(int horasTrabajadas) {
		this.horasTrabajadas = horasTrabajadas;
	}

	@Override
	public double calcularBonificacion() {
		return getHorasTrabajadas() * 1.2;
	}

	public void mostrarDetalles() {
		System.out.println(getNombre() + " - " + getEdad() + " - " + getSalario() + " - " + getHorasTrabajadas());
	}
}

package com.trifulcas.herencia.ejercicio;

public class EmpleadoTiempoCompleto extends Empleado {


	private double bono;
	
	public EmpleadoTiempoCompleto(String nombre, int edad, double salario, double bono) {
		super(nombre, edad, salario);
		this.bono=bono;
	}

	
	/**
	 * @return the bono
	 */
	public double getBono() {
		return bono;
	}


	/**
	 * @param bono the bono to set
	 */
	public void setBono(double bono) {
		this.bono = bono;
	}


	@Override
	public double calcularBonificacion() {
		return bono;

	}
	@Override
	public void mostrarDetalles() {
		System.out.println(getNombre()+" - "+getEdad()+" - "+getSalario()+" - "+getBono());
	}
}

package com.trifulcas.herencia.ejercicio;

public interface MetodoPago {
	void procesarPago(double monto);
	void mostrarDetalles();
}

package com.trifulcas.herencia.ejercicio;

public class TarjetaCredito implements MetodoPago {

	private String numeroTarjeta;
	private String titular;
	private String fechaExpiracion;
	
	
	public TarjetaCredito(String numeroTarjeta, String titular, String fechaExpiracion) {
		super();
		this.numeroTarjeta = numeroTarjeta;
		this.titular = titular;
		this.fechaExpiracion = fechaExpiracion;
	}

	@Override
	public void procesarPago(double monto) {
		System.out.println("Procesando el pago de "+monto);

	}

	@Override
	public void mostrarDetalles() {
		System.out.println(numeroTarjeta+" - "+titular+" - "+fechaExpiracion);
	}

}

package com.trifulcas.herencia.ejercicio;

public class Paypal implements MetodoPago {

	private String email;
	
	
	public Paypal(String email) {
		super();
		this.email = email;
	}

	@Override
	public void procesarPago(double monto) {
		System.out.println("Procesando el pago PAYPAL de "+monto);


	}

	@Override
	public void mostrarDetalles() {
		System.out.println(email);

	}

}

package com.trifulcas.herencia.ejercicio;

public class TransferenciaBancaria implements MetodoPago {

	private String numeroCuenta;
	private String banco;

	@Override
	public void procesarPago(double monto) {
		System.out.println("Procesando pago Transferencia "+monto);
	}

	@Override
	public void mostrarDetalles() {
		System.out.println(numeroCuenta+" - "+banco);
	}

}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos