ESCUELA POLITECNICA DEL
EJERCITO

Clases Abstractas e Interfaces

Héctor López Cevallos
Clases abstractas
   Cuando una clase se diseña para ser genérica,
    es casi seguro que no necesitaremos crear
    objetos de ella; la razón de su existencia es
    proporcionar los atributos y comportamientos
    que serán compartidos a sus subclases. A esta
    clase se la denomina clase abstracta.

•   Se la defina           calificándola   explícitamente
    abstracta. Así:
     Public abstract class Ccuenta{
         //Cuerpo de la clase
     }
   Una clase abstracta puede contener el
    mismo tipo de miembros que una
    clase que no lo sea, y además puede
    contener métodos abstractos, que una
    clase no abstracta no puede contener.

   Un método abstracto no tiene cuerpo;
    la idea es proporcionar métodos que
    deban ser redefinidos en las
    subclases , con la intención de
    adaptarlos     a    las necesidades
    particulares de éstas.
   Reglas de uso:
   Una clase abstracta solo puede ser usada
    como clase base para otras clases, pero no
    puede ser instanciada para crear un objeto.

   Una clase abstracta no puede ser utilizada
    como argumento o como retorno de una
    función.

   Si puede      declararse   punteros-a-clase
    abstracta.

   Se permiten referencias-a-clase abstracta,
    suponiendo que el objeto temporal no es
    necesario en la inicialización.
Interfaces
   Es un dispositivo que permite
    interactuar a objetos no relacionados
    entre sí.    Las interfaces Java en
    realidad definen un conjunto de
    mensajes que se puede aplicar a
    muchas clases de objetos, a los que
    cada una de ellas debe responder de
    forma adecuada. Por ello, a una
    interfaz también se le da el nombre de
    protocolo.
   Definir una interfaz
    ◦ [public] interface nombre_interfaz extends
      superinterfaces
    ◦ {
       Cuerpo de la intefaz
    ◦ }


   Para crear una interface, se utiliza la palabra clave
    interface en lugar de class. La interface puede
    definirse public o sin modificador de acceso, y
    tiene el mismo significado que para las clases.
    Todos los métodos que declara una interface son
    siempre public.
   La palabra extends significa que se esta
    definiendo una interfaz que es una extension de
    otras.
Clase abstracta vs Interfaz
   Si sabe de antemano que va a crear
    varias versiones del componente, cree
    una clase abstracta. Las clases
    abstractas proporcionan un medio fácil y
    sencillo para crear versiones de los
    componentes. Al actualiza la clase base,
    todas las clases heredadas se actualizan
    automáticamente con el cambio. Por el
    contrario, las interfaces no se pueden
    cambiar una vez creadas. Si necesita
    una nueva versión de una interfaz,
    deberá crear una totalmente nueva.

Clases abstractas e interfaz

  • 1.
    ESCUELA POLITECNICA DEL EJERCITO ClasesAbstractas e Interfaces Héctor López Cevallos
  • 2.
    Clases abstractas  Cuando una clase se diseña para ser genérica, es casi seguro que no necesitaremos crear objetos de ella; la razón de su existencia es proporcionar los atributos y comportamientos que serán compartidos a sus subclases. A esta clase se la denomina clase abstracta. • Se la defina calificándola explícitamente abstracta. Así: Public abstract class Ccuenta{ //Cuerpo de la clase }
  • 3.
    Una clase abstracta puede contener el mismo tipo de miembros que una clase que no lo sea, y además puede contener métodos abstractos, que una clase no abstracta no puede contener.  Un método abstracto no tiene cuerpo; la idea es proporcionar métodos que deban ser redefinidos en las subclases , con la intención de adaptarlos a las necesidades particulares de éstas.
  • 4.
    Reglas de uso:  Una clase abstracta solo puede ser usada como clase base para otras clases, pero no puede ser instanciada para crear un objeto.  Una clase abstracta no puede ser utilizada como argumento o como retorno de una función.  Si puede declararse punteros-a-clase abstracta.  Se permiten referencias-a-clase abstracta, suponiendo que el objeto temporal no es necesario en la inicialización.
  • 5.
    Interfaces  Es un dispositivo que permite interactuar a objetos no relacionados entre sí. Las interfaces Java en realidad definen un conjunto de mensajes que se puede aplicar a muchas clases de objetos, a los que cada una de ellas debe responder de forma adecuada. Por ello, a una interfaz también se le da el nombre de protocolo.
  • 6.
    Definir una interfaz ◦ [public] interface nombre_interfaz extends superinterfaces ◦ {  Cuerpo de la intefaz ◦ }  Para crear una interface, se utiliza la palabra clave interface en lugar de class. La interface puede definirse public o sin modificador de acceso, y tiene el mismo significado que para las clases. Todos los métodos que declara una interface son siempre public.  La palabra extends significa que se esta definiendo una interfaz que es una extension de otras.
  • 7.
    Clase abstracta vsInterfaz  Si sabe de antemano que va a crear varias versiones del componente, cree una clase abstracta. Las clases abstractas proporcionan un medio fácil y sencillo para crear versiones de los componentes. Al actualiza la clase base, todas las clases heredadas se actualizan automáticamente con el cambio. Por el contrario, las interfaces no se pueden cambiar una vez creadas. Si necesita una nueva versión de una interfaz, deberá crear una totalmente nueva.