Ingenero Sistemas

Páginas: 18 (4354 palabras) Publicado: 6 de junio de 2013
Objetos de índice de interfaz
En esta sección se describe el uso de las interfaces en Delphi.
Objetos de interfaz (Delphi)
Un objeto de interface, o simplemente interfaz, define los métodos que pueden ser implementados por una clase. Las interfaces se declaran como las clases, pero no pueden ser directamente instanciadas y no tienen sus definiciones de métodos propios. Más bien, es laresponsabilidad de cualquier clase que soporta una interfaz proporcionar implementaciones para los métodos de la interfaz. Una variable de tipo de interfaz puede hacer referencia a un objeto cuya clase implementa esa interfaz; Sin embargo, sólo los métodos declarados en la interfaz pueden ser llamados usando este tipo de variable.
Las interfaces ofrecen algunas de las ventajas de la herencia múltiplesin las dificultades semánticas. También son esenciales para el uso de modelos de objetos distribuidos (como SOAP). El uso de un modelo de objetos distribuidos, objetos personalizados que las interfaces soportan, puede interactuar con los objetos escritos en C++, Java y otros lenguajes.
Tipos de interfaz
Las interfaces, como las clases, pueden ser declaradas sólo en el ámbito más externo de unprograma o unidad, no en una declaración de procedimiento o función. Una declaración del tipo de interfaz tiene la forma:
type interfaceName = interface (ancestorInterface) ['{GUID}'] memberList end;
Advertencia: las especificaciones de ancestorInterface y GUID son necesarias para apoyar la interoperabilidad COM de Win32. Si la interfaz es accesible a través de COM, Asegúrese de especificar elancestorInterface y GUID.
En muchos aspectos, las declaraciones de interfaz se asemejan a las declaraciones de clase, pero las siguientes restricciones aplican:
La lista de usuarios puede incluir sólo los métodos y propiedades. Los campos no están permitidos en las interfaces.
Puesto que un interfaz no tiene ningún campo, los especificadores de propiedades read y write deben ser métodos.
Todoslos miembros de una interfaz son públicos. Los especificadores de visibilidad y especificadores de almacenamiento no están permitidos. (Sin embargo, una propiedad de array puede ser declarada de forma predeterminada).
Las interfaces no tienen constructores ni destructores. No pueden ser instanciadas, excepto a través de clases que implementan sus métodos.
Los métodos no pueden ser declarados comovirtual, dynamic, abstract, o override. Puesto que las interfaces no ejecutan sus propios métodos, estas designaciones no tienen ningún significado.
Aquí está un ejemplo de una declaración de interfaz:
type IMalloc = interface(IInterface)
['{00000002-0000-0000-C000-000000000046}']
function Alloc(Size: Integer): Pointer; stdcall;
function Realloc(P: Pointer; Size: Integer):Pointer; stdcall;
procedure Free(P: Pointer); stdcall;
function GetSize(P: Pointer): Integer; stdcall;
function DidAlloc(P: Pointer): Integer; stdcall;
procedure HeapMinimize; stdcall;
end;
En algunas declaraciones de interfaz, la palabra reservada interface es remplazada por dispinterface.
Interfaz y herencia
Una interfaz, como una clase, hereda todos sus métodos deancestros. Sin embargo, las interfaces, a diferencia de las clases, no implementan métodos. Lo que una interfaz hereda es la obligación para implementar métodos, una obligación que es pasada a cualquier clase que soporte la interfaz.
La declaración de una interfaz puede especificar una interfaz de los ancestros. Si no se especifica un ancestro, la interfaz es un descendiente directo de IInterface, quese define en la unidad System y es el ancestro de todas las otras interfaces. En Win32, IInterface declara 3 métodos: QueryInterface, _AddRef, y _Release.
Nota: IInterface es equivalente a IUnknown. En general, usted debe utilizar IInterface para aplicaciones independientes de la plataforma y se reserva el uso de IUnknown para los programas específicos que incluyen dependencias de Win32....
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • ingenera
  • ingeñero
  • Ingenero
  • ingenero
  • Ingenero
  • Ingenero
  • ingenero
  • ingenero en ciencias

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS