1: Большую часть времени вы хотите инициализировать свои объекты внутри вашего класса, чтобы избежать проблем с нулевыми ссылками.
2: Вы вводите в заблуждение свои понятия здесь, поскольку то, как вы представляете свои объекты, на самом деле не относится к ООП. ООП-часть уравнения полностью посвящена тому, что представляют собой ваши классы и как они связаны друг с другом, поэтому, если есть связь между родительским и дочерним классами, то она должна быть представлена в структурах классов.
3: В идеале у вас должна быть структура класса, которая позволяет вам связывать вашу сетку данных и может автоматически генерировать вашу иерархию для вашей сетки данных.