Data Structure
Estructura de datos
Clase
Es un modelo que define un conjunto de propiedades y funcionalidades.
Clases Abstractas
Este tipo de clases nos permiten crear método generales, que recrean un comportamiento común, pero sin especificar cómo lo hacen. A nivel de código tienen por particularidad que algunos de sus métodos no tienen cuerpo de declaración, es decir no tienen las llaves { } ni código dentro de ellos y deben estar precedidos por la palabra clave abstract. Si una clases contiene uno o más métodos abstractos está clase debe ser abstracta. Estas clases no pueden ser instanciadas por ningún objeto y su único fin es ser heredado/extendido por otras clases.
- Una clase abstracta puede tener también métodos implementados, es decir no abstractos.
- Las clases que hereden de la clase Abstracta deben implementar todos los métodos abstractos.
- Se debe tener presente que las clases abstractas sí pueden heredar de otras clases.
- Si una clase abstracta está compuesta sólo por métodos abstractos y constantes entonces podemos hablar de una interface.
public abstract class Figura {
// Atributos:
public int numeroLados;
public int area;
public int volumen;
// Métodos:
abstract public void calcularArea();
abstract public void calcularVolumen();
}
Interfaces
Es un contrato que expone un conjunto de constantes y/o funcionalidades únicamente abstractas.
Cuando una clase implementa una interfaz, debe proporcionar una implementación para todos los miembros de la interfaz. Una clase puede implementar varias interfaces, aunque solo puede derivar de una única clase base directa.
public interface InombreInterfaz<T> //T es el tipo de objeto
{
IQueryable<T> GetAll();
T GetByKey(Guid id);
void Add(T entity);
void Remove(T entity);
void Update(T entity);
}
Herencia
Es una relación que permite a partir de una clase base extender su funcionamiento y propiedades a otras clases derivadas donde se puede modificar el comportamiento. Una clase derivada solo puede tener una clase base directa, pero la herencia es transitiva.
Cuando se define una clase para que derive de otra clase, la clase derivada obtiene implícitamente todos los miembros de la clase base, salvo sus constructores y sus finalizadores.
public class Camioneta : Vehiculo, ILlantas
{
}
Polimorfismo
Son métodos y/o funciones con el mismo nombre pertenecientes a diferentes objetos que reciben los mismos parámetros.
Las clases bases pueden definir métodos virtuales que permiten que en las clases derivadas se puedan pueden invalidarlos, es decir que pueden proporcionar su propia definición e implementación.
Sobrecarga
Son métodos y/o funciones con el mismo nombre pertenecientes al mismo objeto que reciben diferentes parámetros. Se resuelve en tiempo de compilación, utilizando los nombres de sus métodos y tipos de parámetros.
Principios POO
Encapsulamiento Permite restringir los accesos a los datos e implementaciones de una clase. (Modificadores de acceso)
Abstraccion Aislar un elemento de su contexto, se refiere al que hace mas no al como (Definición de una clase)
Herencia
Polimorfismo