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

ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 

Kürzlich hochgeladen (20)

Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 

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)