I think your confusion comes from the fact that Unity is doing something special in relation to these methods ( Update, Start, Awakeetc.). You can declare them closed, and even then they will be called. This cannot be achieved with language unless you use reflection, but I was told that they do not use it, so I donβt know what they are doing. And honestly, it doesnβt matter. Because you may think that this is an exception to the language, that is, these methods will be called if you implement them. This is simple.
For everyone else, you must follow the language. Here is a rough explanation:
You can or should overrideuse the method if it is marked as abstractor virtualin the base class.
abstract, , . virtual, , / .
, ""? . , , . . abstract, virtual override, API .