Proszę o pomoc, proste klasy

0

Mam jeden problem, nie wiem co zrobić aby wywołać w pętli foreach metody "graj", aby każda odpowiadała dobremu obiektowi.

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

namespace Kolokwium___zadanie_2
{
class Program
{
static void Main(string[] args)
{
List<Gracz> lista = new List<Gracz>();

        Gracz gracz = new Gracz();
        Skrzypek skrzypek = new Skrzypek();
        Hokeista hokeista = new Hokeista();
        E_sportowiec e_sportowiec = new E_sportowiec();

        gracz.imię = "Robert";
        skrzypek.imię = "Adam";
        hokeista.imię = "Piotr";
        e_sportowiec.imię = "Michał";

        lista.Add(gracz);
        lista.Add(skrzypek);
        lista.Add(hokeista);
        lista.Add(e_sportowiec);




        foreach (var item in lista)
        {
            Console.WriteLine(item.imię);
            item.graj();


        }
        Console.ReadKey();

    }
    class Gracz
    {
        public string imię;
        public string nazwisko;
        public int zarobki;

        public void graj()
        {
            Console.WriteLine("Gracz gra w grę");
        }


    }
    class E_sportowiec : Gracz
    {
        new public void graj()
        {
            Console.WriteLine("Gracz gra w grę komputerową");
        }

    }
    class Hokeista : Gracz
    {
        public void graj()
        {
            Console.WriteLine("Gracz gra w hokeja");
        }

    }
    class Skrzypek : Gracz
    {
        public void graj()
        {
            Console.WriteLine("Gracz gra na skrzypcach");
        }

    }
}

}

1

Poczytaj o metodach wirtualnych.

0

lub Interfejsem

interface IGracz
{
	string Imie { get; set; }

	void Graj();
}

public class Skrzypek : IGracz
{
	public string Imie { get; set; }
	
	public void Graj()
	{
		Console.WriteLine("Skrzypek");
	}
}

public class Hokeista : IGracz
{
	public string Imie { get; set; }
	
	public void Graj()
	{
		Console.WriteLine("Hokeista");
	}
}
var list = new List<IGracz>();
0

Dziękuję!

0

Interfejsów jeszcze się nie uczyłem

1 użytkowników online, w tym zalogowanych: 0, gości: 1