Question 1: Suppose ContractA does not use initialize() function, but it inherits from Initializable and used _disableInitializer()
in its constructor. Is it still considered as upgradable contract??
Question 2: If the ContractB is an abstract contract with features mentioned in question 1, how those features will affect the ContractB?? Can we upgrade an abstract contract?? If we can upgrade then if this abstract contract does not implement storage gap so will it cause any issue to other inherited contracts??