SlideShare una empresa de Scribd logo
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.
CLASES ABSTRACTAS
Una clase que declara la existencia de métodos pero no la implementación de dichos
métodos (o sea, estos métodos no hacen nada, solo son declarados), se considera una
clase abstracta.
Una clase abstracta puede contener métodos no abstractos pero al menos uno de los
métodos debe ser abstracto.
Para declarar una clase o método como abstractos, se utiliza la palabra reservada
abstract.
                       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.
EJEMPLO
Como ejemplo tomaremos dos figuras geométricas, el Rectángulo y
el Triangulo rectángulo, para el
ejemplo sólo consideraremos dos características similares: el ancho y
el alto, por lo que podemos crear una súper clase Figura geométrica
con 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, el
cálculo del área del Rectángulo es diferente al cálculo del área del
Triangulo.

                Área del Rectángulo = ancho X alto
               Área del Triangulo = (ancho X alto)/2

Por lo tanto, el método getArea() deberá ser abstracto, por lo cual, la
clase Figura también deberá ser abstracta.
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);
         }
}
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 Protected
Este tipo de datos es privado para todas aquellas clases que no son derivadas, pero
público para una clase derivada de la clase en la que se ha definido la variable como
protected.
INTERFACES
Una interface es una variante de una clase abstracta con la condición
de que todos sus métodos deben ser abstractos. Si la interface va a
tener atributos, éstos deben llevar las palabras reservadas static final
y con un valor inicial ya que funcionan como constantes por lo
que, por convención, su nombre va en mayúsculas.

      interface Nomina
      {
      public static final String EMPRESA = "Patito,
      S. A.";
      public void detalleDeEmpleado(Nomina obj);
      }
   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
         {
            ...
         }
public interface Figura
    {
      public double area ();
    }

En Java, las interfaces se declaran con la palabra reservada
interface de manera similar a como se declaran las clases
abstractas.


En la declaración de una interfaz, lo único que puede
aparecer son declaraciones de métodos (su nombre y
signatura, sin su implementación) y definiciones de
constantes simbólicas



Una interfaz no encapsula datos, sólo define cuáles son los
métodos
que han de implementar los objetos de aquellas clases que
implementen la interfaz.
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;
        }
}
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");
                  }
          }
   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();
                    }
             }
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)

Más contenido relacionado

La actualidad más candente

Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaceslopezcortes
 
CONCEPTOS Y FUNDAMENTOS DE LÓGICA DIFUSA 2
CONCEPTOS Y FUNDAMENTOS   DE LÓGICA DIFUSA 2CONCEPTOS Y FUNDAMENTOS   DE LÓGICA DIFUSA 2
CONCEPTOS Y FUNDAMENTOS DE LÓGICA DIFUSA 2
ESCOM
 
Clases Abstractas Pc
Clases Abstractas PcClases Abstractas Pc
Clases Abstractas Pcguest28ee92
 
Tipos De Datos Abstractos
Tipos De Datos AbstractosTipos De Datos Abstractos
Polimorfismo y Clases Abstractas
Polimorfismo y Clases AbstractasPolimorfismo y Clases Abstractas
Polimorfismo y Clases Abstractas
codigosyalgomas
 
8. técnicas de escritura de códigos
8. técnicas de escritura de códigos8. técnicas de escritura de códigos
8. técnicas de escritura de códigosHectorMamani
 
Utp sirn_s12_sistemas de control basados en logic difusa
 Utp sirn_s12_sistemas de control basados en logic difusa Utp sirn_s12_sistemas de control basados en logic difusa
Utp sirn_s12_sistemas de control basados en logic difusajcbp_peru
 
Utp sirn_2015-2 lab1
 Utp sirn_2015-2 lab1 Utp sirn_2015-2 lab1
Utp sirn_2015-2 lab1jcbp_peru
 
Lógica difusa y conceptos
Lógica difusa y conceptosLógica difusa y conceptos
Lógica difusa y conceptos
J R7
 
Conjuntos difusos, Parte 1
Conjuntos difusos, Parte 1Conjuntos difusos, Parte 1
Conjuntos difusos, Parte 1
SIRIUS e-Learning
 
Utp 2015-2_sirn_s11_operaciones difusas
 Utp 2015-2_sirn_s11_operaciones difusas Utp 2015-2_sirn_s11_operaciones difusas
Utp 2015-2_sirn_s11_operaciones difusasjcbp_peru
 
Introduccion a la logica difusa
Introduccion a la logica difusaIntroduccion a la logica difusa
Introduccion a la logica difusaCarlos Villaseñor
 
Programación Funcional con Scheme
Programación Funcional con SchemeProgramación Funcional con Scheme
Programación Funcional con Scheme
Óscar Andrés López
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 

La actualidad más candente (19)

Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
CONCEPTOS Y FUNDAMENTOS DE LÓGICA DIFUSA 2
CONCEPTOS Y FUNDAMENTOS   DE LÓGICA DIFUSA 2CONCEPTOS Y FUNDAMENTOS   DE LÓGICA DIFUSA 2
CONCEPTOS Y FUNDAMENTOS DE LÓGICA DIFUSA 2
 
Clases Abstractas Pc
Clases Abstractas PcClases Abstractas Pc
Clases Abstractas Pc
 
Tipos De Datos Abstractos
Tipos De Datos AbstractosTipos De Datos Abstractos
Tipos De Datos Abstractos
 
Polimorfismo y Clases Abstractas
Polimorfismo y Clases AbstractasPolimorfismo y Clases Abstractas
Polimorfismo y Clases Abstractas
 
8. técnicas de escritura de códigos
8. técnicas de escritura de códigos8. técnicas de escritura de códigos
8. técnicas de escritura de códigos
 
MéTodos En Java
MéTodos En JavaMéTodos En Java
MéTodos En Java
 
Tipos De Datos Abstractos Colas
Tipos De Datos Abstractos ColasTipos De Datos Abstractos Colas
Tipos De Datos Abstractos Colas
 
Utp sirn_s12_sistemas de control basados en logic difusa
 Utp sirn_s12_sistemas de control basados en logic difusa Utp sirn_s12_sistemas de control basados en logic difusa
Utp sirn_s12_sistemas de control basados en logic difusa
 
Utp sirn_2015-2 lab1
 Utp sirn_2015-2 lab1 Utp sirn_2015-2 lab1
Utp sirn_2015-2 lab1
 
Video 1 metodos y arreglos
Video 1 metodos y arreglosVideo 1 metodos y arreglos
Video 1 metodos y arreglos
 
Lógica difusa y conceptos
Lógica difusa y conceptosLógica difusa y conceptos
Lógica difusa y conceptos
 
Conjuntos difusos, Parte 1
Conjuntos difusos, Parte 1Conjuntos difusos, Parte 1
Conjuntos difusos, Parte 1
 
Utp 2015-2_sirn_s11_operaciones difusas
 Utp 2015-2_sirn_s11_operaciones difusas Utp 2015-2_sirn_s11_operaciones difusas
Utp 2015-2_sirn_s11_operaciones difusas
 
Clase 4 JAVA 2012
Clase 4 JAVA 2012Clase 4 JAVA 2012
Clase 4 JAVA 2012
 
Introduccion a la logica difusa
Introduccion a la logica difusaIntroduccion a la logica difusa
Introduccion a la logica difusa
 
Programación Funcional con Scheme
Programación Funcional con SchemeProgramación Funcional con Scheme
Programación Funcional con Scheme
 
Introducción a dr racket
Introducción a dr racketIntroducción a dr racket
Introducción a dr racket
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 

Similar a Clases abs e interfaces

Alejandro Merizalde
Alejandro MerizaldeAlejandro Merizalde
Alejandro Merizalde
Alejandro Merizalde
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Kositha Jimhiz G
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en javajcalmeida2
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
Renny Batista
 
17533924.ppt
17533924.ppt17533924.ppt
17533924.ppt
ssuser94a5071
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfacesEduardo Lapo
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
Richard Eliseo Mendoza Gafaro
 
interfaces.pdf
interfaces.pdfinterfaces.pdf
interfaces.pdf
Rene Guaman-Quinche
 
CLASES STRING MATH TIME
CLASES STRING MATH TIMECLASES STRING MATH TIME
CLASES STRING MATH TIME
Fernando Solis
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logicaanych27
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
Daniiel Toorres
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
jhordy2000
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicio
Jose Luis Moreno Arcos
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
JCarlosCrespo
 

Similar a Clases abs e interfaces (20)

Alejandro Merizalde
Alejandro MerizaldeAlejandro Merizalde
Alejandro Merizalde
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en java
 
Tema5
Tema5Tema5
Tema5
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
17533924.ppt
17533924.ppt17533924.ppt
17533924.ppt
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
C2 clases en java
C2 clases en javaC2 clases en java
C2 clases en java
 
Tema2
Tema2Tema2
Tema2
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
Clase 4 java 2011
Clase 4 java 2011Clase 4 java 2011
Clase 4 java 2011
 
interfaces.pdf
interfaces.pdfinterfaces.pdf
interfaces.pdf
 
CLASES STRING MATH TIME
CLASES STRING MATH TIMECLASES STRING MATH TIME
CLASES STRING MATH TIME
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logica
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicio
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
 

Último

Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
LilianaRivera778668
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 

Último (20)

Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 

Clases abs e interfaces

  • 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. CLASES ABSTRACTAS Una clase que declara la existencia de métodos pero no la implementación de dichos métodos (o sea, estos métodos no hacen nada, solo son declarados), se considera una clase abstracta. Una clase abstracta puede contener métodos no abstractos pero al menos uno de los métodos debe ser abstracto. Para declarar una clase o método como abstractos, se utiliza la palabra reservada abstract. 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. EJEMPLO Como ejemplo tomaremos dos figuras geométricas, el Rectángulo y el Triangulo rectángulo, para el ejemplo sólo consideraremos dos características similares: el ancho y el alto, por lo que podemos crear una súper clase Figura geométrica con 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, el cálculo del área del Rectángulo es diferente al cálculo del área del Triangulo. Área del Rectángulo = ancho X alto Área del Triangulo = (ancho X alto)/2 Por lo tanto, el método getArea() deberá ser abstracto, por lo cual, la clase Figura también deberá ser abstracta.
  • 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. 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 Protected Este tipo de datos es privado para todas aquellas clases que no son derivadas, pero público para una clase derivada de la clase en la que se ha definido la variable como protected.
  • 6. INTERFACES Una interface es una variante de una clase abstracta con la condición de que todos sus métodos deben ser abstractos. Si la interface va a tener atributos, éstos deben llevar las palabras reservadas static final y con un valor inicial ya que funcionan como constantes por lo que, 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. 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. public interface Figura { public double area (); } En Java, las interfaces se declaran con la palabra reservada interface de manera similar a como se declaran las clases abstractas. En la declaración de una interfaz, lo único que puede aparecer son declaraciones de métodos (su nombre y signatura, sin su implementación) y definiciones de constantes simbólicas Una interfaz no encapsula datos, sólo define cuáles son los métodos que han de implementar los objetos de aquellas clases que implementen la interfaz.
  • 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. 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. 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. 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)