lunes, 7 de abril de 2014

Explicando herencia, polimorfismo, sobrescritura,...


Ejemplo figuras,... está incompleto e incluso erróneo en la concepción, montado para explicar NO PARA USAR
package herencia;

/**
*
* @author juan
*/
public class Herencia {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        NuevaClase a = new NuevaClase("Pepe");
        NuevaClase b = new NuevaClase("yO NO SOY PPEP");
        NuevaClase tmp;
        Cuadrado cuadrado = new Cuadrado(25);
        Cuadrado c2 = new Cuadrado(23);
        Cuadrado c3 = new Cuadrado(25);
       
        System.out.println(" son iguales cuadrado y c3"+ cuadrado.equals(c3));
        System.out.println(" iguales a y c3 "+ c3.equals(a));
       
       
        /*
        Figura miFigura = new Figura();
        Paralelogramo otro = new Paralelogramo(2,3,4,5);
       
        miFigura.setLados(10);
        System.out.println(miFigura.getLados());
       
        System.out.println("Perímetro" + otro.perimetro());
        System.out.println("Lados: " + otro.getLados());
       
        System.out.println("Perímetro cuadrado: "+ cuadrado.perimetro());
        System.out.println("Lados: "+cuadrado.getLados());
        System.out.println("Área "+ cuadrado.area());
        System.out.println("Longitud lado: "+cuadrado.getlonLado());
       
      /*
        System.out.println(a==b);
        System.out.println("Igualando....");
     

   tmp=a;
        a=b;
       
        System.out.println("");
        System.out.println("a"+a);
        System.out.println("b"+b);
        System.out.println("tmp"+tmp);
       
        Figura c = new Figura();
        Triangulo d= new Triangulo(4);
        Cuadrado cuad = new Cuadrado(67);
        int num;
       
       
        System.out.println(d.getLados());
        num= d.area();
        System.out.println(num);
        System.out.println(cuad.area());
        */
       
       
    }
}



/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package herencia;

/**
*
* @author juan
*/
public class Cuadrado extends Paralelogramo{

    public int getlonLado(){
        return super.getL1();
    }
   
    public Cuadrado(int lonLado) {
        super(lonLado,lonLado,lonLado,lonLado);
       
       
    }

/*    @Override
    public int area() {
        return super.getL1()*super.getL1();
    }
    *
    *
    *
    *
    *
*/

    @Override
    public boolean equals(Object other) {
        if (other == null) return false;
        if (other == this) return true;
        if (!(other instanceof Cuadrado))return false;
        Cuadrado elOtro = (Cuadrado)other;
        return elOtro.getlonLado()==this.getlonLado();
    }
   


}


package herencia;

/**
*
* @author juan
*/
public class Cuadri extends Figura{

   
    public Cuadri(int lados) {
        super(4);
    }

    public Cuadri() {
        super(4);
    }
   
   
}

package herencia;


public class Figura {

    private int lados;

    public int getLados() {
        return lados;
    }

    public void setLados(int lados) {
        this.lados = lados;
    }
   
   
    public  int area() {
        System.out.println("Clase Figura");
        return lados*lados*lados;
    }

    public Figura() {
    }
   
    public Figura(int lados) {
        this.lados=lados;
    }
   
   
}

package herencia;

/**
*
* @author juan
*/
public class NuevaClase {
    public String nombre;

    public NuevaClase(String nombre) {
       
        this.nombre= nombre;
    }
   
   
}
package herencia;

/**
*
* @author juan
*/
public class Paralelogramo extends Figura{

    private int l1;
    private int l2;
    private int l3;
    private int l4;
   
    public Paralelogramo() {
        super(4);
    }

    public Paralelogramo(int l1, int l2, int l3, int l4) {
        super(4);
        this.l1 = l1;
        this.l2 = l2;
        this.l3 = l3;
        this.l4 = l4;
    }

    public int getL1() {
        return l1;
    }

    public void setL1(int l1) {
        this.l1 = l1;
    }

    public int getL2() {
        return l2;
    }

    public void setL2(int l2) {
        this.l2 = l2;
    }

    public int getL3() {
        return l3;
    }

    public void setL3(int l3) {
        this.l3 = l3;
    }

    public int getL4() {
        return l4;
    }

    public void setL4(int l4) {
        this.l4 = l4;
    }
   

    public int perimetro()
    {
        return l1+l2+l3+l4;
    }  
   
}
package herencia;

/**
*
* @author juan
*/
public class Triangulo extends Figura{

    public Triangulo(int lados) {
        super(lados);
    }

    public int getLados() {
        return super.getLados();
    }
   
  @Override
public int area(){
   
      super.area();
      System.out.println("Clase Triángulo"); 
    return (15);
}
   
   
}