All of this (inheritance, virtual keywords, exact error messages… ) is standard C#, and there are many non-Unity sites with examples, explanations, places to ask… . They tend to be much more thorough and extensive than anything you’ll find on UA.
C# in Unity really does work 99.99% the same as every other use of C#. Even for things like a list of gameObjects. GameObjects are Unity only, but keeping a list of [whatever] is a standard C# topic, which many well-explained non-Unity examples which work the same way in Unity.