Bueno vengo nuevamente a ustedes ahora con este detalle, veran, estoy aprendiendo por mi propia cuenta a programar en Java, no llevo mucho y recientemente empecé con las interfaces, pero hay una declaración que no entiendo muy bien, podria alguien decirme que significa? y explicarme detalladamente que es y para que sirve?
Según yo se de las clases abstract e Interface, no se pueden instanciar (crear objetos) pero la verdad no entiendo con que fin hacen esto, es obligatorio su uso?
Bueno, este ejemplo viene en mi libro y aca les dejo parte del codigo
Código Javascript
:
Ver originalpublic interface PorPagar
{
double obtenerMontoPago(); // calcula el pago; no hay implementación
} // fin de la interfaz PorPagar
Código Javascript
:
Ver originalpublic class Factura implements PorPagar
{
//... Declaración de variables
//... Constructor y métodos
public double obtenerMontoPago()
{
return obtenerCantidad() * obtenerPrecioPorArticulo(); // calcula el costo total
}
}
Código Javascript
:
Ver originalpublic abstract class Empleado implements PorPagar
{
//... Declaración de variables
//... Constructor y métodos
// Nota: Aquí no implementamos el método obtenerMontoPago de PorPagar, así
// que esta clase debe declararse como abstract para evitar un error de
// compilación.
}
Código Javascript
:
Ver originalpublic class EmpleadoAsalariado extends Empleado
{
//... Declaración de variables
//... Constructor y métodos
public double obtenerMontoPago()
{
return obtenerSalarioSemanal();
}
Cita: public class PruebaInterfazPorPagar
{
public static void main( String args[] )
{
// crea arreglo PorPagar con cuatro elementos
PorPagar objetosPorPagar[] = new PorPagar[ 4 ];
// llena el arreglo con objetos que implementan la interfaz PorPagar
objetosPorPagar[ 0 ] = new Factura( "01234", "asiento", 2, 375.00 );
objetosPorPagar[ 1 ] = new Factura( "56789", "llanta", 4, 79.95 );
objetosPorPagar[ 2 ] =
new EmpleadoAsalariado( "John", "Smith", "111-11-1111", 800.00 );
objetosPorPagar[ 3 ] =
new EmpleadoAsalariado( "Lisa", "Barnes", "888-88-8888", 1200.00 );
System.out.println(
"Facturas y Empleados procesados en forma polimorfica:\n" );
// procesa en forma genérica cada elemento en el arreglo objetosPorPagar
for ( PorPagar porPagarActual : objetosPorPagar )
{
// imprime porPagarActual y su monto de pago apropiado
System.out.printf( "%s \n%s: $%,.2f\n\n",
porPagarActual.toString(),
"pago vencido", porPagarActual.obtenerMontoPago() );
} // fin de for
} // fin de main
}
¿¿¿Por que???
¿Que fin tiene un arreglo de Interfaces?
Necesito que me expliquen!!!
Estoy desesperado!!!