But I think the class requires properties and dependences should be in constructor. In init() only initialization of object, the basic operation. 
About parent implementation position I dont know, but I know that using children classes in parent is a mistake.