Witam! Mam pytanie odnośnie interfejsów i dziedziczenia. Załóżmy, że mamy taka sytuację, że mamy 2 klasy, powiedzmy Car i Tiny, Tiny dziedziczy po Car, obie klasy implementują interfejs "IDriveable", który implementuje metodę "goForward()". Teraz tworze statyczną funkcję w tym samym pliku co funkcja główna "main", która jako argument pobiera argument typu "IDriveable", teraz jak przekazuję obiekt typu "Car" no to wykonuje się dla Car, natomiast jak podam typu Tiny to wykonuje się "goForward()" dla typu Tiny. Czyli polimorfizm dla interfejsu działa. Tylko teraz jak zdefiniuje funkcję, która jako argument przyjmuję typ "Car", i będę w niej wykonywał funkcje z interfejsu:
public static void checker(Car car)
{
car.goForward();
}
jak podam obiekt typu "Car", to wykona się dla typu Car, natomiast jak podaje obiekt typu "Tiny" ( który dziedziczy po Car, i implementuje ten sam interfejs) to polimorfizm już nie działa, i funkcja wykonuje się jak dla typu Car. No i teraz pytanie, czy w C# już tak po prostu jest? Dla typu Car nie uruchomię funkcji z interfejsu dla typu Tiny( tylko uruchomię oryginał)? I gdyby chciał żeby działało dla Tiny to bym musiał użyć słówka virtual i robić zwykły polimorfizm? Próbuję to jakoś zrozumieć..