Ho letto dei metodi virtuali in C#. Esiste un concetto chiamato classe virtuale in C#? La classe astratta in C# e la classe virtuale in C++ sono le stesse?Esiste una classe virtuale in C#?
Grazie in anticipo.
Ho letto dei metodi virtuali in C#. Esiste un concetto chiamato classe virtuale in C#? La classe astratta in C# e la classe virtuale in C++ sono le stesse?Esiste una classe virtuale in C#?
Grazie in anticipo.
Non c'è niente di simile in C# - e non è realmente necessario poiché l'ereditarietà di implementazione multipla non è supportata. Fare un abstract di classe significa solo che non puoi creare istanze di quella classe e che potrebbero non essere completamente implementate (ad esempio potrebbero contenere metodi astratti).
Non ci sono classi virtuali in C#. La classe astratta non è la stessa poiché non è possibile creare un'istanza di una classe astratta.
È possibile fare l'opposto di contrassegnare qualcosa di virtuale contrassegnandolo con sealed, che ne impedisce l'ereditarietà.
io opinare con un link a questo precedente SO messaggio: In C++ what is a virtual base class?
Come altri hanno detto, dal momento che C# non ha l'ereditarietà multipla, la necessità di avere una "classe base virtuale" che limita l'ereditarietà multipla non è necessario, quindi non si applica a C#. Solo i membri in C# possono essere virtuali.
Cosa intendi con una classe virtuale in C++? Intendi l'inerenza virtuale o una classe con una pura funzione virtuale? – shf301