usar una sellada que protegido programacion polimorfismo orientada objetos nuevo miembro metodos interfaz interfaces implementacion ejemplos declarado clases clase caracteristicas abstractas abstracta c# interface virtual abstract

c# - sellada - que es una interfaz en programacion orientada a objetos



Comparación: métodos de interfaz vs métodos virtuales vs métodos abstractos (1)

Virtual y abstracto son casi lo mismo. Un método virtual tiene una implementación en la clase base que opcionalmente se puede anular, mientras que un método abstracto no se debe y se debe anular en una clase secundaria. De lo contrario, son lo mismo. Elegir entre ellos depende de la situación. Si tienes una implementación básica, utilizas virtual. Si no lo hace, y necesita que cada descendiente lo implemente por sí mismo, elija abstract.

Los métodos de interfaz son implementaciones de un método que se declara en una interfaz que implementa la clase. Esto no tiene relación con los otros dos. Creo que un método puede ser tanto virtual como de interfaz. La ventaja de las interfaces es que declaras una interfaz (duh) que puede implementarse mediante dos clases totalmente diferentes. De esta forma, puede ejecutar el mismo código en dos clases diferentes, siempre que los métodos que desea llamar se declaren en una interfaz que comparten.

¿Cuáles son las ventajas y desventajas de cada uno de estos?

  • métodos de interfaz
  • métodos virtuales
  • métodos abstractos

¿Cuándo uno debería elegir qué? ¿Cuáles son los puntos que se deben tener en cuenta al tomar esta decisión?