I'm having a question about inheritance in solidity. I have a contract, let's call is Base, and I have 3 other contracts which inherit Base. They are very small because almost all logic is located in Base. I have a fabric which can create instances of each of this 3 contracts. When I try to deploy this fabric it costs abnormal amount of gas(3.6 million of gas) and if remove any of this 3 contracts it will cost 2.4 million
The question is: does solidity uploads parent contract every time for each contract whit inherit it?
If no, then what is the reason for such gas price?