ESCUELA POLITÉCNICA DEL EJÉRCITO        CIENCIAS DE LA ENERGÍA Y MECÁNICA              INGENIERÍA MECÁNICA              PR...
CLASES ABSTRACTASUna clase que declara la existencia de métodos pero no la implementación de dichosmétodos (o sea, estos m...
EJEMPLOComo ejemplo tomaremos dos figuras geométricas, el Rectángulo yel Triangulo rectángulo, para elejemplo sólo conside...
abstract class Figura {        protected int ancho,alto;        void setDatos(int x,int y)   //método no abstracto        ...
class Triangulo extends Figura{    float getArea()   //implementación (desarrollo del método)    {    return ((ancho*alto)...
INTERFACESUna interface es una variante de una clase abstracta con la condiciónde que todos sus métodos deben ser abstract...
   Una clase implementa una o más interfaces    (separadas por comas) con la palabra reservada    implements con el uso d...
public interface Figura    {      public double area ();    }En Java, las interfaces se declaran con la palabra reservadai...
public class Circulo implements Figura{         private double radio;        public Circulo (double radio)        {       ...
EJEMPLO DE INTERFACES    En el siguiente ejemplo, tomaremos de ejemplo a los animales, se sabe que     todos los animales...
   Ahora crearemos una clase Gato que implemente la interfaz Animal, por lo    que obligatoriamente tendremos que impleme...
CONCLUSIONES Las clases abstractas se usa únicamente para definir  subclases, es una clase que no se puede instanciar. U...
Upcoming SlideShare
Loading in …5
×

Clases abs e interfaces

917 views

Published on

Presentación Tema: Clases Abstractas e Interfaces

Published in: Education
  • Be the first to comment

Clases abs e interfaces

  1. 1. ESCUELA POLITÉCNICA DEL EJÉRCITO CIENCIAS DE LA ENERGÍA Y MECÁNICA INGENIERÍA MECÁNICA PROGRAMACIÓN I CLASES ABSTRACTAS E INTERFACES Rodrigo Salinas V.
  2. 2. CLASES ABSTRACTASUna clase que declara la existencia de métodos pero no la implementación de dichosmétodos (o sea, estos métodos no hacen nada, solo son declarados), se considera unaclase abstracta.Una clase abstracta puede contener métodos no abstractos pero al menos uno de losmétodos debe ser abstracto.Para declarar una clase o método como abstractos, se utiliza la palabra reservadaabstract. abstract class Dibujar { abstract void miMetodo(int var1, int var2); String otroMetodo() { //instrucciones del metodo } } Una clase abstracta no se puede instanciar (es decir no se pueden volver en objetos) pero si se puede heredar y las clases hijas serán las encargadas de agregar la funcionalidad a los métodos abstractos.
  3. 3. EJEMPLOComo ejemplo tomaremos dos figuras geométricas, el Rectángulo yel Triangulo rectángulo, para elejemplo sólo consideraremos dos características similares: el ancho yel alto, por lo que podemos crear una súper clase Figura geométricacon estas dos características y sus métodos correspondientes,además del métodos getArea() que devolverá el área de la Figura.Pero, se presenta un problema, elcálculo del área del Rectángulo es diferente al cálculo del área delTriangulo. Área del Rectángulo = ancho X alto Área del Triangulo = (ancho X alto)/2Por lo tanto, el método getArea() deberá ser abstracto, por lo cual, laclase Figura también deberá ser abstracta.
  4. 4. abstract class Figura { protected int ancho,alto; void setDatos(int x,int y) //método no abstracto { ancho=x; alto=y; } void mostrarDatos() //método no abstracto { System.out.println(ancho); System.out.println(alto); } abstract float getArea(); //método abstracto}class Rectangulo extends Figura{ float getArea() //implementación (desarrollo del método) { return (ancho*alto); }}
  5. 5. class Triangulo extends Figura{ float getArea() //implementación (desarrollo del método) { return ((ancho*alto)/2); } public class prueba { public static void main(String[] args) { Rectangulo r=new Rectangulo(); r.setDatos(4,3); System.out.println(r.getArea()); Triangulo t=new Triangulo(); t.setDatos(4,3); System.out.print(t.getArea()); } } Tipo de dato ProtectedEste tipo de datos es privado para todas aquellas clases que no son derivadas, peropúblico para una clase derivada de la clase en la que se ha definido la variable comoprotected.
  6. 6. INTERFACESUna interface es una variante de una clase abstracta con la condiciónde que todos sus métodos deben ser abstractos. Si la interface va atener atributos, éstos deben llevar las palabras reservadas static finaly con un valor inicial ya que funcionan como constantes por loque, por convención, su nombre va en mayúsculas. interface Nomina { public static final String EMPRESA = "Patito, S. A."; public void detalleDeEmpleado(Nomina obj); }
  7. 7.  Una clase implementa una o más interfaces (separadas por comas) con la palabra reservada implements con el uso de interfaces se puede “simular” la herencia múltiple que Java no soporta class Empleado implements Nomina { ... }
  8. 8. public interface Figura { public double area (); }En Java, las interfaces se declaran con la palabra reservadainterface de manera similar a como se declaran las clasesabstractas.En la declaración de una interfaz, lo único que puedeaparecer son declaraciones de métodos (su nombre ysignatura, sin su implementación) y definiciones deconstantes simbólicasUna interfaz no encapsula datos, sólo define cuáles son losmétodosque han de implementar los objetos de aquellas clases queimplementen la interfaz.
  9. 9. public class Circulo implements Figura{ private double radio; public Circulo (double radio) { this.radio = radio; } public double area () { Return Math.PI*radio*radio; }}public class Cuadrado implements Figura{ private double lado; public Cuadrado (double lado) { this.lado = lado; } public double area () { return lado*lado; }}
  10. 10. EJEMPLO DE INTERFACES En el siguiente ejemplo, tomaremos de ejemplo a los animales, se sabe que todos los animales hablan (literalmente), por ejemplo el perro ladra, el gato maúlla, etc. Entonces se puede crear una interfaz Animal con el método hablar() interface Animal { public void hablar(); } Ahora crearemos una clase Perro que implemente la interfaz Animal, por lo que obligatoriamente tendremos que implementar el método hablar(). public class Perro implements Animal{ public void hablar() { System.out.print("guauuu"); } }
  11. 11.  Ahora crearemos una clase Gato que implemente la interfaz Animal, por lo que obligatoriamente tendremos que implementar el método hablar(). public class Gato implements Animal{ public void hablar() { System.out.print("miauuu"); } } class prueba { public static void main(String[] args) { Perro p=new Perro(); p.hablar(); Gato g=new Gato(); g.hablar(); } }
  12. 12. CONCLUSIONES Las clases abstractas se usa únicamente para definir subclases, es una clase que no se puede instanciar. Usamos una clase abstracta Cuando deseamos definir una abstracción que englobe objetos de distintos tipos y queremos hacer uso del polimorfismo. Una interfaz es una clase completamente abstracta (una clase sin implementación)

×