SlideShare a Scribd company logo
1 of 8
Clases Abstractas e Interfaces
Clases Abstractas

Una clases Abstracta…..

              es una clase que no se puede instanciar
              se usa únicamente para definir sub clases

 ¿Cuándo es una clase Abstracta ?

En cuanto uno de sus métodos no tiene implementación (En Java
el método abstracto se etiqueta con la palabra reservada abstract )

 ¿Cuándo se utiliza clases abstractas?

Cuando se desea definir una abstracción que englobe objetos de
Distintos tipos y queremos hacer uso del polimorfismo
„ Las subclases de una clase abstracta deben:
Š Sobrescribir todos los métodos abstractos de
la superclase, o bien
Š Ser declaradas como clases abstractas


„ Una clase abstracta no puede instanciarse
Š No se pueden crear objetos de una clase
Abstracta


„ Una clase abstracta puede incluir variables y
métodos no abstractos.


„ No se pueden definir constructores abstractos o
métodos estáticos abstractos.
Ejemplo:
public abstract class Forma {
  private int xpos, ypos;
  private Color color;
  // ...                                      los métodos
  public abstract void dibuja();               abstractos no
  public void setColor(Color c){ /*...*/ };    tienen cuerpo
}
public class Circle extends Forma{
  private int radio;
  // ...
  public void dibuja(){ /*...*/ };
  public void setRadio(int){/*...*/};
}
dibuja un
círculo
public class Rectangle extends Forma{
  private int altura, anchura;
  // ...
  public void dibuja(){ /*...*/ };
  public void setAltura(int){/*...*/};
}
Interfaces
 En java, las interfaces se declaran con la palabra reservada
  interface de manera similar como se declaran las clases abstractas.

 En la declaración de una interfaz, lo único que puede aparecer son
declaraciones de los métodos (su nombre y asignatura, sin su implementación)

 Una Interfaz no encapsula datos, solo define cuales son los métodos
que han de implementar los objetos de aquellas clases que
Implementen la interfaz.

 En java, para indicar que una clase implementa una interfaz se
utiliza la palabra reservada implements.

 La clase debe entonces implementar todos los métodos definidos
por la interfaz o declararse, a su vez, como una clase abstracta
 Sólo declaran comportamiento

„ Por defecto todos sus métodos son
públicos y abstractos

Permite simular algunos aspectos de la
herencia múltiple
„        Define un tipo de datos
„        Posibilita el enlace dinámico

 Otras clases pueden implementar un interfaz
„
 Cualquier clase que implemente un interfaz debe
definir todos los métodos de dicho interfaz
ŠDebe proporcionar la implementación de dichos métodos
„
 Si la clase no proporciona la implementación para
todos los métodos del interfaz debe ser declarada
como abstracta
Declaración de interfaces
Sintaxis
Implementación del interfaz en una clase
„ Una clase puede implementar varios interfaces

interface NombreInterfaz {
tipo static final NOMBRECONSTANTE1 = valor;
public tipoDevuelto nombreMetodo1(listaParámetros);
}
interface NombreInterfaz {
tipo static final NOMBRECONSTANTE1 = valor;
public tipoDevuelto nombreMetodo1(listaParámetros);
}
class NombreClase implements NombreInterfaz1
[, NombreInterfaz2 ..] {
// declaración atributos y métodos de la clase
}
class NombreClase implements NombreInterfaz1
[, NombreInterfaz2 ..] {
// declaración atributos y métodos de la clase
}
Ejemplo de Interfaz
public interface Nombrable {
static final boolean CIERTO = true;
public void mostrarNombre();
}
public class Elemento implements Nombrable {
String nombre;
public Elemento(String nom) {
nombre = nom; }
// obligatorio implementar método mostrarNombre
public void mostrarNombre(){
System.out.println("Nombre: "+nombre);
if (CIERTO)
System.out.println("Constante CIERTO ");
}
}

More Related Content

What's hot

OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
Oscar V
 
OCP JSE 6 Programmer (1Z0-851) - Guia practica 1 de 7(Declaraciones)
OCP JSE 6 Programmer (1Z0-851) - Guia practica 1 de 7(Declaraciones)OCP JSE 6 Programmer (1Z0-851) - Guia practica 1 de 7(Declaraciones)
OCP JSE 6 Programmer (1Z0-851) - Guia practica 1 de 7(Declaraciones)
Oscar V
 
Guia de estudio OCP Java SE 7 Programmer
Guia de estudio OCP Java SE 7 ProgrammerGuia de estudio OCP Java SE 7 Programmer
Guia de estudio OCP Java SE 7 Programmer
Oscar V
 

What's hot (18)

OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
 
OCP JSE 6 Programmer (1Z0-851) - Guia practica 1 de 7(Declaraciones)
OCP JSE 6 Programmer (1Z0-851) - Guia practica 1 de 7(Declaraciones)OCP JSE 6 Programmer (1Z0-851) - Guia practica 1 de 7(Declaraciones)
OCP JSE 6 Programmer (1Z0-851) - Guia practica 1 de 7(Declaraciones)
 
Guia de estudio OCP Java SE 7 Programmer
Guia de estudio OCP Java SE 7 ProgrammerGuia de estudio OCP Java SE 7 Programmer
Guia de estudio OCP Java SE 7 Programmer
 
6. estructura de programas
6. estructura de programas6. estructura de programas
6. estructura de programas
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Implementación de clases
Implementación de clasesImplementación de clases
Implementación de clases
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Tema5
Tema5Tema5
Tema5
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Cuestionario cevallos
Cuestionario cevallosCuestionario cevallos
Cuestionario cevallos
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacion
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 

Similar to Clases abstractas e interfaces

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Kositha Jimhiz G
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
Alexandra Pérez
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
Robert Wolf
 
2 3 3 Interfaces
2 3 3 Interfaces2 3 3 Interfaces
2 3 3 Interfaces
UVM
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko
 
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
 

Similar to Clases abstractas e interfaces (20)

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
 
2 3 3 Interfaces
2 3 3 Interfaces2 3 3 Interfaces
2 3 3 Interfaces
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Clases abs e interfaces
Clases abs e interfacesClases abs e interfaces
Clases abs e interfaces
 
Interfaces
InterfacesInterfaces
Interfaces
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Laboratorio interfaces
Laboratorio interfacesLaboratorio interfaces
Laboratorio interfaces
 
Clases abstractas
Clases abstractasClases abstractas
Clases abstractas
 
Clases abstractas
Clases abstractasClases abstractas
Clases abstractas
 
interfaces.pdf
interfaces.pdfinterfaces.pdf
interfaces.pdf
 
Intro Java
Intro JavaIntro Java
Intro Java
 
Clase abstracta
Clase abstractaClase abstracta
Clase abstracta
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
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
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 

Clases abstractas e interfaces

  • 1.
  • 2. Clases Abstractas e Interfaces Clases Abstractas Una clases Abstracta….. es una clase que no se puede instanciar se usa únicamente para definir sub clases  ¿Cuándo es una clase Abstracta ? En cuanto uno de sus métodos no tiene implementación (En Java el método abstracto se etiqueta con la palabra reservada abstract )  ¿Cuándo se utiliza clases abstractas? Cuando se desea definir una abstracción que englobe objetos de Distintos tipos y queremos hacer uso del polimorfismo
  • 3. „ Las subclases de una clase abstracta deben: Š Sobrescribir todos los métodos abstractos de la superclase, o bien Š Ser declaradas como clases abstractas „ Una clase abstracta no puede instanciarse Š No se pueden crear objetos de una clase Abstracta „ Una clase abstracta puede incluir variables y métodos no abstractos. „ No se pueden definir constructores abstractos o métodos estáticos abstractos.
  • 4. Ejemplo: public abstract class Forma { private int xpos, ypos; private Color color; // ... los métodos public abstract void dibuja(); abstractos no public void setColor(Color c){ /*...*/ }; tienen cuerpo } public class Circle extends Forma{ private int radio; // ... public void dibuja(){ /*...*/ }; public void setRadio(int){/*...*/}; } dibuja un círculo public class Rectangle extends Forma{ private int altura, anchura; // ... public void dibuja(){ /*...*/ }; public void setAltura(int){/*...*/}; }
  • 5. Interfaces  En java, las interfaces se declaran con la palabra reservada interface de manera similar como se declaran las clases abstractas.  En la declaración de una interfaz, lo único que puede aparecer son declaraciones de los métodos (su nombre y asignatura, sin su implementación)  Una Interfaz no encapsula datos, solo define cuales son los métodos que han de implementar los objetos de aquellas clases que Implementen la interfaz.  En java, para indicar que una clase implementa una interfaz se utiliza la palabra reservada implements.  La clase debe entonces implementar todos los métodos definidos por la interfaz o declararse, a su vez, como una clase abstracta
  • 6.  Sólo declaran comportamiento „ Por defecto todos sus métodos son públicos y abstractos Permite simular algunos aspectos de la herencia múltiple „ Define un tipo de datos „ Posibilita el enlace dinámico  Otras clases pueden implementar un interfaz „  Cualquier clase que implemente un interfaz debe definir todos los métodos de dicho interfaz ŠDebe proporcionar la implementación de dichos métodos „  Si la clase no proporciona la implementación para todos los métodos del interfaz debe ser declarada como abstracta
  • 7. Declaración de interfaces Sintaxis Implementación del interfaz en una clase „ Una clase puede implementar varios interfaces interface NombreInterfaz { tipo static final NOMBRECONSTANTE1 = valor; public tipoDevuelto nombreMetodo1(listaParámetros); } interface NombreInterfaz { tipo static final NOMBRECONSTANTE1 = valor; public tipoDevuelto nombreMetodo1(listaParámetros); } class NombreClase implements NombreInterfaz1 [, NombreInterfaz2 ..] { // declaración atributos y métodos de la clase } class NombreClase implements NombreInterfaz1 [, NombreInterfaz2 ..] { // declaración atributos y métodos de la clase }
  • 8. Ejemplo de Interfaz public interface Nombrable { static final boolean CIERTO = true; public void mostrarNombre(); } public class Elemento implements Nombrable { String nombre; public Elemento(String nom) { nombre = nom; } // obligatorio implementar método mostrarNombre public void mostrarNombre(){ System.out.println("Nombre: "+nombre); if (CIERTO) System.out.println("Constante CIERTO "); } }