Kategoria: C# Dodane przez marcin90

Co to jest metoda wirtualna?

1 odpowiedź

1 0 Dodane 10-06-2018 przez marcin90

Metody wirtualne pozwalają na nadpisywanie metod klasy bazowej w klasach pochodnych.
Mówiąc prościej klasa bazowa może dostarczać implementację danej funkcji, lecz jeśli programista uzna, że klasa pochodna powinna być zaimplementowana w inny sposób, może ją nadpisać.


Stworzymy metodę wirtualną Start() w klasie bazowej Car oraz nadpiszemy ją w klasie pochodnej FastCar.

  public class Car
  {
    public virtual void Start()
    {
      Console.WriteLine("Car started.");
    }
  }
  public class FastCar : Car
  {
    public override void Start()
    {
      Console.WriteLine("FastCar started.");
    }
  }

W przypadku gdy stworzony zostanie obiekt typu klasy bazowej wskazując na klasę pochodną, jako implementację funkcji Start użyta zostanie ta z klasy pochodnej.

Car car = new Car();
car.Start(); //output: 'Car started.'

Car carFastCar = new FastCar();  // tworzymy obiekt typu Car wskazując na klasę FastCar
carFastCar.Start();//output: 'FastCar started.'  efekt działania metody wirtualnej

FastCar fastCar = new FastCar();     
fastCar.Start(); //output: 'FastCar started.'

Dodaj swoją wersję odpowiedzi

Dodajesz odpowiedź jako gość. Zaloguj się się by uzyskać dostęp do rankingu oraz powiadomień.