2013-02-27 17 views
11

Czytałem o metodach wirtualnych w języku C#. Czy istnieje jakieś pojęcie o nazwie klasa wirtualna w C#? Czy klasa abstrakcyjna w języku C# i klasie wirtualnej w języku C++ jest taka sama?Czy istnieje klasa wirtualna w języku C#?

Z góry dziękuję.

+3

Co rozumiesz przez wirtualną klasę w C++? Masz na myśli wirtualną inherentność lub klasę z czystą wirtualną funkcją? – shf301

Odpowiedz

16

Nie ma czegoś takiego w języku C# - i to naprawdę nie jest konieczne, ponieważ dziedziczenie wielu implementacji nie jest obsługiwane. Sporządzenie streszczenia klasy w rzeczywistości oznacza tylko, że nie można utworzyć wystąpień tej klasy i mogą one nie zostać w pełni zaimplementowane (np. Mogą zawierać metody abstrakcyjne).

6

Brak wirtualnych klas w języku C#. Klasa abstrakcyjna nie jest taka sama, ponieważ nie można utworzyć instancji klasy abstrakcyjnej.

Możesz zrobić coś przeciwnego niż oznaczenie czegoś wirtualnego przez oznaczenie go jako sealed, co zapobiega jego dziedziczeniu.

3

będę być zdania z linkiem do tego wcześniej, więc post: In C++ what is a virtual base class?

Jak wspominają inni, ponieważ C# nie ma wielokrotne dziedziczenie, trzeba mieć „wirtualną klasę bazową”, która ogranicza wielokrotne dziedziczenie nie jest potrzebne, dlatego nie dotyczy C#. Tylko członkowie w języku C# mogą być wirtualni.

Powiązane problemy