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 original
public interface PorPagar { double obtenerMontoPago(); // calcula el pago; no hay implementación } // fin de la interfaz PorPagar
Código Javascript:
Ver original
public 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 original
public 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 original
public 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
}
{
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!!!