herencia y polimorfismo

Post on 03-Nov-2015

4 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Herencia Y Polimorfismo en Java, Empezando a programar.

TRANSCRIPT

  • JAVA BSICO

    Herencia y polimorfismo

  • Contenido

    Herencia

    Polimorfismo

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    2

  • Interfaz

    La interaccin de los objetos con el mundo exterior serealiza a travs de los mtodos pblicos que ofrece.

    A ste conjunto de mtodos se le llama la interfaz delobjeto.

    Por ejemplo, el conjunto de botones que estn al frente dela televisin, son la interfaz entre los componenteselectrnicos internos de la televisin y el mundo exterior.Cada botn ofrece una funcionalidad, por ejemplo, el botnde encendido, prende y apaga la televisin.

    La forma comn de una interfaz es un conjunto de mtodossin implementacin.

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    3

  • Ejemplo

    Imaginemos que nos solicitan un sistema para hacerclculos sobre figuras geomtricas.

    El sistema no necesita dibujar, solamente debeimplementar operaciones matemticas sobre lasfiguras.

    Las primeras operaciones sern el clculo del permetroy el rea.

    Para asegurar que todas las figuras geomtricasofrezcan las mismas operaciones, todas las clasesdeben implementar la interfaz IFigura.

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    4

  • Ejemplo

    Implementar una interfaz, permite a una clase formalizar el comportamientoque promete proveer.

    Cuando una clase implementa una interfaz debe dar cuerpo a todos losmtodos definidos en ella.

    Se pueden implementar cualquier cantidad de interfaces.

    Para implementar una interfaz se usa la palabra reservada implements

    public interface IFigura {

    public double area ();public double perimetro ();

    }

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    5

  • Ejemplo

    public class Rectangulo implements IFigura {

    double ladoA;double ladoB;

    public Rectangulo (double A, double B){ladoA = A;ladoB = B;

    }@Overridepublic double area() {

    return ladoA*ladoB;}

    }

    Mtodo de la interfaz, ya

    implementado

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    6

  • Ejemplo

    public class Rectangulo implements IFigura {

    double ladoA;double ladoB;

    public Rectangulo (double A, double B){ladoA = A;ladoB = B;

    }@Overridepublic double area() {

    return ladoA*ladoB;}@Overridepublic double perimetro() {

    return 2*ladoA+2*ladoB;}

    }

    Mtodos de la interfaz, ya

    implementados

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    7

  • Herencia

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    8

  • Herencia

    La herencia es la capacidad de las clases de Java de utilizar elcomportamiento y los atributos de una clase definida previamente.

    La clase que hereda el comportamiento y los atributos de otra clase,puede agregar funcionalidad y atributos propios, de tal maneraque se diferencie de la clase padre.

    Permite la reutilizacin de cdigo.

    Solo se puede heredar de una clase.

    Para heredar de una clase se utiliza la palabra reservada extends

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    9

  • Ejemplo Herencia

    public class Cuadrado extends Rectangulo {

    public Cuadrado (double lado){super (lado, lado);

    }}

    public static void main (String [] args){Cuadrado c= new Cuadrado (3);System.out.println ("P="+c.perimetro ());System.out.println ("A="+c.area ());System.out.println (c);

    }

    Se invoca el Se invoca el constructor de la

    clase padre.

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    10

  • Clase abstracta

    Una clase abstracta, es una clase que puede tenermtodos sin implementar.

    No se pueden crear objetos directamente de unaclase abstracta. Se debe crear una clase queherede a esta clase para que implemente losmtodos que no tienen cuerpo.

    Para definir una clase abstracta se usa la palabrareservada abstract.

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    11

  • 18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx12

    public abstract class Poligono{

    String nombre;int numLados;

    public Poligono (int lados, String n){numLados = lados;nombre = n;

    }

    public String toString (){return nombre;

    }

    public abstract double semiPerimetro ();public abstract boolean esEquilatero ();

    }

  • 18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx13

    public class Circulo extends Poligono implements IFigura{double radio;

    public Circulo (double radio, String nombre){super (0, nombre);this.radio = radio;

    }

    @Overridepublic double area() { return Math.PI * radio * radio; }

    @Overridepublic double perimetro() { return 2*Math.PI*radio; }

    @Overridepublic double semiPerimetro (){ return perimetro () /2; }

    @Overridepublic boolean esEquilatero (){

    return true;}

    }

  • 18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx14

    public class Rectangulo extends Poligono implements IFigura {double ladoA;double ladoB;public Rectangulo (double A, double B, String nombre){

    super (4, nombre);ladoA = A;ladoB = B;

    }@Overridepublic double area() { return ladoA*ladoB; }@Overridepublic double perimetro() { return 2*ladoA+2*ladoB; }@Overridepublic double semiPerimetro (){ return perimetro () /2;

    }@Overridepublic boolean esEquilatero (){

    if (ladoA == ladoB)return true;

    elsereturn false;

    }}

  • Cdigo para la clase Main

    public class FigurasGeometricas {

    public static void main(String[] args) {Rectangulo rectangulo = new Rectangulo (2,

    3, "Rectangulo");

    Circulo circulo = new Circulo (5, "Circulo");

    System.out.print (rectangulo+" Area = ");System.out.println (rectangulo.area());System.out.print (circulo+" Area = ");System.out.println (circulo.area());

    }}

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    15

  • Ejemplo Herencia

    public class Cuadrado extends Rectangulo {

    public Cuadrado (double lado){super (lado, lado, "Cuadrado");

    }}

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    16

  • Polimorfismo

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    17

  • Polimorfismo

    Polimorfismo significa "muchas formas".

    Es la capacidad de los objetos de Java paracomportarse como sus padres, o como susinterfaces.

    Es de gran utilidad para manejar conjuntos deobjetos de diferentes clases pero que heredan dela misma o implementan la misma interfaz, como sifueran todos del mismo tipo.

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    18

  • Ejemplo polimorfismo

    public static void main(String[] args) {Rectangulo rectangulo = new Rectangulo (2,

    3, "Rectangulo");

    Circulo circulo = new Circulo (5, "Circulo");Cuadrado cuadrado = new Cuadrado (9);

    IFigura [] figuras = new IFigura[3];figuras[0] = rectangulo;figuras[1] = circulo;figuras[2] = cuadrado;

    for (int i = 0; i

  • Representacin Grfica

    ladoA = 3ladoB = 4

    perimetro()

    area()

    perimetro()

    area()radio =

    5

    perimetro()

    area()

    perimetro()

    area()

    figuras

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    20

  • Representacin Grfica

    ladoA = 3ladoB = 4

    perimetro()

    area()

    perimetro()

    area()radio =

    5

    perimetro()

    area()

    perimetro()

    area()

    figuras

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    21

  • Representacin Grfica

    perimetro()

    area()radio =

    5

    perimetro()

    area()

    perimetro()

    area()

    figuras

    ladoA = 3ladoB = 4

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    22

  • Representacin Grfica

    perimetro()

    area()

    perimetro()

    area()

    figuras

    ladoA = 3ladoB = 4

    radio = 5

    18/02/2013miriam.balbuena@gmail.com www.cic.ipn.mx

    23

top related