Escolar Documentos
Profissional Documentos
Cultura Documentos
Clases Abstractas
Son clases instanciadas. que NO pueden ser
Se utilizan solamente para heredar de ellas (Forzar u obligar la herencia). Se antepone la palabra abstract a la clase.
3
Clases abstractas
public abstract void Comer(); public int CalcularEdad() { //Aqu se implementa este mtodo } }
6
abstract class Persona { private string nombre; private string apellido; public string Nombre { get { return nombre; } set { nombre = value; } } public string Apellido { get { return apellido; } set { apellido = value; } class Empleado : Persona } { public string ObtenerNombreCompleto() private int claveEmpleado; { public int Clave return { this.Nombre + " " + this.Apellido; get { return claveEmpleado; } } set { claveEmpleado = value; } } } } class Cliente : Persona { private string rfc; public string RFC { get { return rfc; } set { rfc = value; } 7 } }
10
11
12
Interfaces
Son mecanismos para que puedan interactuar varios objetos no relacionados entre s Son protocolos o contratos que obligan la herencia Contienen las declaraciones de los mtodos, pero no su implementacin. Al igual que las clases abstractas, son plantillas de comportamiento que deben ser implementados por otras clases.
13
Interfaces
14
Una clase que herede de una interfaz debe implementar todas las definiciones contenidas en ella. Los elementos de la interfaz no llevan los modificadores public o virtual. TODOS los elementos declarados dentro de una Intefaz se consideran pblicos y virtuales.
15
17
Declaracin de la interfaz
interface IFecha { int Dia(); int Mes(); string MesConLetra(); int Ao(); }
18
19
Ejemplo de interfaz
interface Vehiculo //Declaraciones solamente { string Marca { get; set; } void Arrancar(); } class Carro: Vehiculo //Implementacion de toda la interfaz { private string _marca; public string Marca { get { return _marca; } set { _marca = value; } } public void Arrancar() { System.Console.WriteLine("Arrancar....Clase Carro"); } } 20
10
21
class Program { static void Main() { Cuadrado c = new Cuadrado(); c.Lado = 2; System.Console.WriteLine( c.ConsultarDatos() ); System.Console.WriteLine("Area: " + c.CalcularArea()); System.Console.WriteLine("Perimetro: " + c.CalcularPerimetro()); System.Console.ReadLine(); } }
22
11
Interfaces en C#
23
La interfaz IComparable
Contiene la declaracin del mtodo CompareTo()
interface IComparable { int CompareTo(object obj); }
12
La interfaz IEquatable
Contiene la declaracin del mtodo Equals()
interface IEquatable<T> { bool Equals(T obj); }
26
13
Implementacin
class ClaseEmpleado: IComparable<ClaseEmpleado>, IEquatable<ClaseEmpleado> { public int Numero { get; set; } public string Nombre { get; set; } La ClaseEmpleado public int CompareTo(ClaseEmpleado x) { if (this.Numero < x.Numero) return -1; else if (this.Numero > x.Numero) return 1; else return 0; } public bool Equals(ClaseEmpleado x) { return (this.Numero == x.Numero); } }
27
Ejemplo de uso
Declaracin e inicializacin de los objetos:
ClaseEmpleado Secretaria = new ClaseEmpleado(); ClaseEmpleado Intendente = new ClaseEmpleado(); Secretaria.Numero = 2; Secretaria.Nombre = "Rosa"; Intendente.Numero = 3; Intendente.Nombre = "Luis";
28
14
29
15