If you are working with upgradable or dynamic weapons whose stats change over the course of the game, check out my response on this other question. I talk about how to make the parent class and use the parent weapon class to make changes the the child weapons and their stats.