Это применимо для всех ООП в целом.В конструкторе (и в других методах тоже) вы должны вызывать конструктор родителя перед вашим кодом.Причина в том, что ваш код может потребовать некоторой инициализации, которая обрабатывается в parent, то есть инициализация базы должна идти до инициализации производного класса.В деструкторе вы должны делать обратное, то есть освобождение ресурсов производного класса должно идти раньше, чем освобождение ресурсов базы.Причина проста.Ресурс производного класса может зависеть от ресурса базы.Если вы освободите ресурс базы раньше, тогда могут возникнуть проблемы.
Это идеальный случай.Во многих случаях вы можете не видеть никакой разницы, но если есть зависимость, как описано выше, то у вас будут проблемы.Поэтому вы должны следовать стандарту, вызывать метод базового класса перед тем, как ваш код, а в dealloc сделать наоборот.