Debido a que son importantes para Delphi, vamos a darle un breve vistazo a las interfaces y su aplicación.
DESCRIPCIÓN
Para empezar, una interfaz es una definición de los métodos y propiedades públicas. Las interfaces sirven como una especie de plantilla para las clases, la definición de los métodos y propiedades que una clase que implementa la interfaz debe utilizar. En ese sentido, una interfaz define un contrato que una clase debe implementar, sin definir cómo debe implementarse ese contrato.
Una de las características cruciales de una interfaz es que proporciona para el polimorfismo sin depender de ancestros comunes de clase. En otras palabras, dos clases que implementan la misma interfaz son asignación compatible con el respeto a esa interfaz, independientemente de lo que las clases que descienden de. ¿Que ventajas aporta esto respecto a una clase abstracta? Pues en este caso la definición es más limpia, nada más.
Lo anterior es de "manual" y es lo que uno tiene que saber a la hora de trabajar con interfaces.
Definición de interfaz para un artículo:
Las interfaces nunca pueden ser instanciadas.
Al compilar nos daría el error: Object or class typed required (se requiere una clase u objeto)
Para utilizar una interfaz necesitamos implementarla a través de una clase.
DESCRIPCIÓN
Para empezar, una interfaz es una definición de los métodos y propiedades públicas. Las interfaces sirven como una especie de plantilla para las clases, la definición de los métodos y propiedades que una clase que implementa la interfaz debe utilizar. En ese sentido, una interfaz define un contrato que una clase debe implementar, sin definir cómo debe implementarse ese contrato.
Una de las características cruciales de una interfaz es que proporciona para el polimorfismo sin depender de ancestros comunes de clase. En otras palabras, dos clases que implementan la misma interfaz son asignación compatible con el respeto a esa interfaz, independientemente de lo que las clases que descienden de. ¿Que ventajas aporta esto respecto a una clase abstracta? Pues en este caso la definición es más limpia, nada más.
Lo anterior es de "manual" y es lo que uno tiene que saber a la hora de trabajar con interfaces.
Definición de interfaz para un artículo:
type IArticulo = interface procedure IncrementarExistencias( rCantidad: Real ); procedure DecrementarExistencias( rCantidad: Real ); function Facturar: Integer; end;
var Articulo: IArticulo; begin Articulo := IArticulo.Create; end;
Para utilizar una interfaz necesitamos implementarla a través de una clase.
type TArticulo = class( TInterfacedObject, IArticulo ) procedure IncrementarExistencias( rCantidad: Real ); procedure DecrementarExistencias( rCantidad: Real ); function Facturar: Integer;