java interface practice

java interface practice
mail@pastecode.io avatar
unknown
java
2 years ago
1.9 kB
3
Indexable
Never
package codigo;

import java.util.ArrayList;

public class Main {

	public static void main(String[] args) {

		// deberia valer 45 despues
		ServicioComplejo scomplejo1 = new ServicioComplejo(15, 3);
		
        // deberia valer 20
		Insumo insumo1 = new Insumo(20);

		ArrayList<Facturable> listaFacturables = new ArrayList<Facturable>();

		listaFacturables.add(scomplejo1);
		listaFacturables.add(insumo1);

		for (Facturable facturable : listaFacturables) {
			System.out.println(facturable.calcularCostos());

			if (facturable instanceof ServicioComplejo) {
				System.out.println("soy Servicio Complejo");
			}

			if (facturable instanceof Insumo) {
				System.out.println("Soy Insumo");
			}
		}

	}
}

//

package codigo;

public interface Facturable {
    public int calcularCostos();
}


//

package codigo;

public class Insumo implements Facturable {
    private int precio;

    public Insumo(int precio) {
        this.setPrecio(precio);
    }

    private void setPrecio(int precio) {
        this.precio = precio;
    }

    public int getPrecio() {
        return this.precio;
    }

    public int calcularCostos() {
        return this.getPrecio();
    }
}

//

package codigo;

public class Servicio implements Facturable {
    private int precio;

    public Servicio(int precio) {
        this.setPrecio(precio);
    }

    private void setPrecio(int precio) {
        this.precio = precio;
    }

    public int getPrecio() {
        return this.precio;
    }

    public int calcularCostos() {
        return this.getPrecio();
    }
}

//

package codigo;

public class ServicioComplejo extends Servicio {

    private int nivelComplejidad;

    public ServicioComplejo(int precio, int nivelComplejidad) {
        super(precio);
        this.nivelComplejidad = nivelComplejidad;
    }

    public int calcularCostos() {
        return this.getPrecio() * this.nivelComplejidad;
    }
}

//