SlideShare ist ein Scribd-Unternehmen logo
1 von 12
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)

Weitere ähnliche Inhalte

Was ist angesagt?

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 2ESCOM
 
Clases Abstractas Pc
Clases Abstractas PcClases Abstractas Pc
Clases Abstractas Pcguest28ee92
 
Polimorfismo y Clases Abstractas
Polimorfismo y Clases AbstractasPolimorfismo y Clases Abstractas
Polimorfismo y Clases Abstractascodigosyalgomas
 
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 conceptosJ R7
 
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
 
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
 

Was ist angesagt? (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)
 

Ähnlich wie Clases abs e interfaces

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Kositha 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
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfacesEduardo Lapo
 
CLASES STRING MATH TIME
CLASES STRING MATH TIMECLASES STRING MATH TIME
CLASES STRING MATH TIMEFernando Solis
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logicaanych27
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnetjhordy2000
 
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 ejercicioJose 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).pdfJCarlosCrespo
 

Ähnlich wie 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
 

Kürzlich hochgeladen

EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................ScarletMedina4
 
programa PLAN ANUAL TUTORIA 3° SEC-2024.docx
programa PLAN ANUAL TUTORIA 3° SEC-2024.docxprograma PLAN ANUAL TUTORIA 3° SEC-2024.docx
programa PLAN ANUAL TUTORIA 3° SEC-2024.docxCram Monzon
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectosTrishGutirrez
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraJose Sanchez
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Gonella
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.monthuerta17
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Salvando mi mundo , mi comunidad , y mi entorno
Salvando mi mundo , mi comunidad  , y mi entornoSalvando mi mundo , mi comunidad  , y mi entorno
Salvando mi mundo , mi comunidad , y mi entornoday561sol
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOEveliaHernandez8
 

Kürzlich hochgeladen (20)

EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
programa PLAN ANUAL TUTORIA 3° SEC-2024.docx
programa PLAN ANUAL TUTORIA 3° SEC-2024.docxprograma PLAN ANUAL TUTORIA 3° SEC-2024.docx
programa PLAN ANUAL TUTORIA 3° SEC-2024.docx
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldadura
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Salvando mi mundo , mi comunidad , y mi entorno
Salvando mi mundo , mi comunidad  , y mi entornoSalvando mi mundo , mi comunidad  , y mi entorno
Salvando mi mundo , mi comunidad , y mi entorno
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
 

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)