Как работают классовые компоненты в React?
Реакт сам создает екземпляр класса и сам вызывает метод рендер, более того он сам вызывает кучу методов жизненного цикла, но я рекомендую пользоваться функциональными компонентами и хуками.
https://reactjs.org/docs/hooks-intro.html#complex-...
1) Потому что Fiber лучше работает с функциональными компонентами.
2) Есть полтора случая на 1000000 когда на функциональном компоненте нельзя реализовать то, что на классовом и все они описаны в официальной документации.
3) В реакте единственное возможное наследование это class Board extends React.Component, все, дальше начинается композиция, и в реакте думать в категориях OOP скорее вредно, чем полезно.
https://reactjs.org/docs/composition-vs-inheritanc...

So What About Inheritance?

At Facebook, we use React in thousands of components, and we haven’t found any use cases where we would recommend creating component inheritance hierarchies.


Поэтому забудьте про class based кмопоненты и сами пишите все на функциональных. А жизненный цикл class based компонент прочитайте внимательно пару (десятков) раз, чтобы запомнить и просто разбираться в чужом коде.
Это логика, которую обрабатывает движок реакта. Ты просто следуешь абстракциям, которые предоставляет либа. Наследуясь от React.Component ты вызываешь метод render, который реализован в базовом классе React. Далее тебе не нужно у каждого дочернего компонента вызывать render, это детали внутреннего исполнения. В данном случае ты просто работаешь с jsx. Чтобы скрупулезно проследить за деталями внутренней реализации - нужно смотреть исходный код.