Herencia en C#
Un contrato base, muchos comportamientos, elegidos en tiempo de ejecución.
Animal[] zoo = { new Dog(), new Cat() };
foreach (var animal in zoo)
{
Console.WriteLine(animal.Speak());
}
class Animal
{
public virtual string Speak() => "...";
}
class Dog : Animal
{
public override string Speak() => "woof, says the dog";
}
class Cat : Animal
{
public override string Speak() => "meow, says the cat";
}
Cómo funciona
virtualmarca lo que una subclase puede cambiar;overridelo cambia.- Un
Animal[]guarda perros y gatos; cada uno habla como sí mismo. - La implementación base es la que corre cuando ninguna subclase la reemplaza.
Palabras clave y builtins usados aquí
classforeachinnewoverridepublicstringvarvirtual
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 325
- Tokens
- 80
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 53 segundos.
Paso 3 de 4 en Clases y records; paso 20 de 29 en Fundamentos del lenguaje.