Interfaces en C#: Contratos de diseño para POO robusta
Una interfaz se define como un contrato sintáctico que todas las clases que heredan la interfaz deben seguir. La interfaz define la parte "qué" del contrato sintáctico y las clases derivadas definen la parte "cómo".
Las interfaces definen propiedades, métodos y eventos, que son los miembros de la interfaz. Las interfaces contienen solo la declaración de los miembros. Es responsabilidad de la clase derivada definir los miembros. A menudo ayuda a proporcionar una estructura estándar que las clases derivadas seguirían.
Las clases abstractas sirven en parte al mismo propósito, pero se usan principalmente cuando solo unos pocos métodos son declarados por la clase base y la clase derivada implementa las funcionalidades.
Declaración de interfaces
Las interfaces se declaran usando la palabra clave interface. Es similar a la declaración de clase. Las sentencias de interfaz son public por defecto.
Ejemplo de declaración:
public interface ITransacciones {
// miembros de la interfaz
void MostrarTransacción();
double GetMonto();
}
Ejemplo de implementación
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;
namespace AplicaciónInterfaz {
public interface ITransacciones {
void MostrarTransacción();
double GetMonto();
}
public class Transacción : ITransacciones {
private string tCode;
private string fecha;
private double monto;
public Transacción() {
tCode = " "; fecha = " "; monto = 0.0;
}
public Transacción(string c, string d, double a) {
tCode = c; fecha = d; monto = a;
}
public double GetMonto() { return monto; }
public void MostrarTransacción() {
Console.WriteLine("Transacción: {0}", tCode);
Console.WriteLine("Fecha: {0}", fecha);
Console.WriteLine("Monto: {0}", GetMonto());
}
}
class Probador {
static void Main(string[] args) {
Transacción t1 = new Transacción("001", "8/10/2012", 78900.00);
Transacción t2 = new Transacción("002", "9/10/2012", 451900.00);
t1.MostrarTransacción();
t2.MostrarTransacción();
Console.ReadKey();
}
}
}
Resultado:
Transacción: 001
Fecha: 8/10/2012
Monto: 78900
Transacción: 002
Fecha: 9/10/2012
Monto: 451900
Lenguaje C
- Sensor Inalámbrico Fiable para Entradas Largas – Integración Fácil con Raspberry Pi
- Uso de la interfaz de línea de comandos con SPICE
- Dominando las Interfaces en C#: Definición, Implementación y Casos de Uso Prácticos
- Interfaces en C++: Dominando Clases Abstractas y Funciones Virtuales Puras
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Framework de Colecciones en Java: Interfaces núcleo, implementaciones y uso práctico
- Interfaz Collection en Java: Conceptos núcleo y métodos esenciales
- Dominando la Interfaz NavigableSet de Java: Navegación, Ordenación y Ejemplos Prácticos
- Dominando Expresiones Lambda en Java: Desde Básicos hasta Stream API
- Entendiendo las Interfaces en Java: Definiciones, Usos y Buenas Prácticas
- Java 9 Métodos Privados en Interfaces: Mejorar Encapsulamiento y Reutilización de Código