No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Implementaci贸n de interfaces

8/35
Recursos

En C# no existe la herencia m煤ltiple, sin embargo, esto no es una limitante para hacer que un objeto se vea como otros objetos diferentes ya que podemos recurrir al uso de interfaces.
Una interfaz es la definici贸n de la estructura de un objeto. Las interfaces las podemos tomar como contratos en las que obligamos a que los objetos cumplan determinadas caracter铆sticas.

Aportes 28

Preguntas 2

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Las interfaces son soluciones alternativas para intentar manejar herencia m煤ltple, b谩sicamente son firmas que exigen a las clases que la implementen usar los m茅todos o propiedades estipulados, la diferencia entre una interface y una clase, es que: en la interface no se puede asociar l贸gica de negocio sobre sus m茅todos.

Un uso pr谩ctico de las interfaces es ligar a subclases que tengan cosas en com煤n pero no en todos los casos

Por ejemplo:
Clase Padre
Clase Hijo1,Hijo2,Hijo3 (Los 3 heredan de Padre)
Solo Hijo1 e Hijo2 son zurdos, quiero presentar todos los Hijos zurdos

Soluci贸n: Crear una interfaz IZurdo para que implementen Hijo1 e Hijo 2 para que la cliente realice polimorfismo puro.y presentar solo las clases que implementen IZurdo
馃槃

Este foreach:

            foreach (var curso in Cursos)
            {
                curso.LimpiarLugar();
            }

es lo mismo que esto:

            Cursos.ForEach( a=>a.LimpiarLugar());

Implementaci贸n de interfaces

En C# no existe la herencia m煤ltiple, sin embargo, esto no es una limitante para hacer que un objeto se vea como otros objetos diferentes ya que podemos recurrir al uso de interfaces.
Una interfaz es la definici贸n de la estructura de un objeto. Las interfaces las podemos tomar como contratos en las que obligamos a que los objetos cumplan determinadas caracter铆sticas.

En mi trabajo, se trabaja con un aplicativo monol铆tico, como contiene muchos m贸dulos, se usan las Interfaces, 驴Por qu茅? simplemente por que las Interfaces te permiten hacer cambios transversales en el aplicativo, as铆 que cuando modificamos el contrato de una interface, el compilador te muestra los mil y un errores donde implementas la interface, en otras palabras, es una herramienta muy 煤til para realizar cambios transversales en los aplicativos.

Una interfaz es una definici贸n que debe tener un objeto. Es un control.

podemos implemetar las interfaces en cualquier clase sin importar que relaci贸n tengan.
ejemplo

interface IRuido {
	void HacerRuido();
}

class Person : IRuido {
	void HacerRuido() {
		Console.WriteLine("Cualquier ruido de humano");
	}
}

class Radio: IRuido {
	void HacerRuido() {
		Console.WriteLine("Estoy sonando");
	}
}

Una interfaz una definici贸n de la estructura que debe de tener un objeto, ademas de eso es un contrato que dice que condiciones debe cumplir un objeto bajo una circunstancia.

Ejemplo de una interfaz en visual studio

<using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Estudiantes
{
    interface Animales
    {
        String obtenerRaza();
    }
}
>

Una Interfaz es un molde que debe tener un objeto, el cual se obliga a cumplir con sus propiedades y metodos.

Entonces la interfaz es una definicion que obliga a una clase a tener que incorporar propiedades y metodos.

Nota: En la interface no me permite declarar variables, solo propiedades y metodos. Estos no se deben rellenar.

Para que les aparezca la opci贸n de 鈥淣ew C# Interface鈥 deben descargar en Visual Studio Code la extensi贸n 鈥淐# Extensions鈥 de 鈥渏channon鈥.

Las interfaces son algo 鈥淧ro鈥, son utilizadas para poder tener una 鈥渕antenibilidad鈥 del c贸digo; adem谩s que es una buena pr谩ctica.

Al usarlo en proyectos peque帽os no se puede notar la diferencia, no obstante, en grandes proyectos hace una enorme diferencia.

Tambi茅n mejora la eficiencia a nivel de c贸digo, por lo tanto, debe ser utilizado si o si.

馃槑

Excelente

Una clase que implemente una interfaz DEBE tener todas las propiedades y los m茅todos de dicha interfaz.

interfces : funcionalidades de los objetos

Una interfaz posee los m茅todos que ser谩n implementados en los objetos que la invoquen.
Cada objeto que implemente una interfaz deber谩 detallar el m茅todo de la interfaz en su c贸digo.

Implementacion explicita sirve para separar por as铆 decirlo los atributos de la interfaz y la clase si por alguna raz贸n se requiere para identificar plenamente el atributo correspondientemente...

Las interfaces no tienen modificadores de acceso todos son p煤blicos

las interfaces son firmas que deben cumplir los objetos que las implementen.

Implementar Interfaces de forma Explicita鈥 para poder determinar que m茅todos o firmas corresponden a que Interfaz o contrato.

La interfaces nos sirven para definir que m茅todos y propiedades deben tener las clases que hagan uso de la interfaz, al implementar de una interfaz nos obligar谩 a crear las propiedades y m茅todos definidos en el.

Alguien me puede ayudar a entender cuando usar una interfaz y cuando usar una clase abstracta ? 馃槂

Tengo entendido que las Interfaces son usadas como una buena pr谩ctica en la programaci贸n orientada a objetos, pero no me quedo claro como se usar铆an y cual la ventaja de usarlas.

Una interfaz es una definici贸n de la estructura que debe tener un objeto.

una manera simple y comoda de explicar las interfaces, muchas gracias

Un peque帽o resumen de esta clase que se refiere a la Implementaci贸n de Interfaces:
Para entender lo que es interfaces tomamos como referencia la herencia m煤ltiple, ya que es la funcionalidad que se asemeja, y se dice se asemeja porque en C# no existe.

Entonces esto quiere decir que una interface Es la definici贸n de la estructura de un objeto ahora veamos el ejemplo de una estructura definida en un interface.

Se quiere implementar otro atributo en Escuela, en este caso es direcci贸n

namespace CoreEscuela.Entidades
{
    public interface ILugar
    {
         string Direccion {get; set;}
         void LimpiarLugar();
         
    }
}

Creamos la interface con la definici贸n de su estructura que tendr谩 Direccion y un m茅todo que se llama LimpiarLugar()

Para implementar esta interface en las clases que querramos sera as铆

public class Escuela: ObjetoEscuelaBase,ILugar

Como ya se est谩 estableciendo una herencia, lo que hacemos es poner despu茅s del objeto padre una com
Ahora emplearemos la estructura definida de una manera diferente en dos clases distintas
En la clase Curso

public void LimpiarLugar()
    {
       Printer.DrawLine();
       Console.WriteLine("Limpiando Establecimiento direcci贸n....");
       Console.WriteLine($"Curso {Nombre} Limpio");

    }

En la clase Escuela

public void LimpiarLugar()
    {
       Printer.DrawLine();
       Console.WriteLine("Limpiando Escuela ....");
       foreach(var curso in Cursos)
       {
           curso.LimpiarLugar();
       }
       Console.WriteLine($"Escuela {Nombre} Limpia");

    }