08 interfaces

Upload: jean-paul-perea

Post on 08-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 08 Interfaces

    1/10

    1

    Interfaces

    Tecnologa de la Programacin IIng. Zoraida Vidal Melgarejo, Mg.

  • 8/7/2019 08 Interfaces

    2/10

    2

    Interfaces

    Un interface es una coleccin de declaraciones de mtodos

    (sin definirlos) y tambin puede incluir atributos.

    El papel de la interface es el de describir algunas de las

    caractersticas de una clase. Por ejemplo, el hecho de que

    una persona sea un futbolista no define su personalidadcompleta, pero hace que tenga ciertas caractersticas que las

    distinguen de otras.

    Clases que no estn relacionadas pueden implementar una

    interface, por ejemplo, una clase que describa una animaciny una clase que realice un clculo intensivo podran

    implementar una misma interface.

  • 8/7/2019 08 Interfaces

    3/10

    3

    Interfaces

    Podra suceder que los objetos de varias clases compartan lacapacidad de ejecutar un cierto conjunto de operaciones.

    Y dependiendo de la clase de objeto, cada operacin serealice de diferente manera.

    Ejemplo: Clases: Circulo, Elipse, Triangulo, ....

    Todas esas clases incluyen los mtodos: rea, permetro,cambiarEscala, etc.

    Podramos definir una interface comn que agrupe todos losmtodos comunes (como mtodos abstractos).

    Y luego definir varias clases de modo que implementen unamisma interfaz.

  • 8/7/2019 08 Interfaces

    4/10

    4

    Ejemplo de Interfaz

    public interface Figura {

    public double PI=3.1416;

    public double area();

    public double perimetro();

    }

  • 8/7/2019 08 Interfaces

    5/10

    5

    Ejemplo de Interfaz

    public class Circulo implements Figura {

    private double radio;

    ...

    public double area() {return PI*radio*radio;

    }

    public double perimetro() {

    return 2*PI*radio;

    }

    }

  • 8/7/2019 08 Interfaces

    6/10

    6

    Ejemplo de Interfaz

    public class Cuadrado implements Figura {

    private double lado;

    ...

    public double area() {

    return lado*lado;

    }

    public double perimetro() {

    return 4*lado;}

    }

  • 8/7/2019 08 Interfaces

    7/10

    7

    Ejemplo de Interfaz

    La interface Figura tiene un atributo de nombre PI, y la

    definicin de dos mtodos: area() y perimetro().

    Las clases que implementen a esta interface deben de

    proporcionarle una implementacin (cuerpo o cdigo) a los

    dos mtodos definidos en la interface.

    El atributo de la interface se convierte en una constante

    para las clases que implementan a la interface.

  • 8/7/2019 08 Interfaces

    8/10

    8

    Herencia mltiple con Interfaces

    Una misma clase puede implementar ms de una interfaz

    Simulacin de herencia mltiple.

    Pagos Descuentos

    Empleado

    public class Empleado implements Pagos, Descuentos {

    }

  • 8/7/2019 08 Interfaces

    9/10

    9

    Herencia entre Interfaces

    Un interface puede heredar de ms de una interface

    Herencia mltiple de interfaces.

    SeguroSocial AFP

    Descuentos

    public interface Descuentos extends SeguroSocial, AFP {

    }

  • 8/7/2019 08 Interfaces

    10/10

    10

    Agrupando objetos que comparten

    la implementacin de una Interface

    double totalArea(Figura v[]) {

    double t=0;

    for (int i=0; i