Hi Amritendu,
For the 1st Q, I'm inclined towards answer 'C' than 'B' because Certificate class is NOT 'closed' for modification (changes frequently) that can also cause issues when extended, hence violates 'Open closed principle'.
I'm not quite sure if the information in the question is sufficient to arrive at answer 'B' as it is not clear whether you are inheriting Certificate to be used in a higher level module to violate 'Dependency Inversion'.
As I understand, avoiding 'rigid' design is the basic idea behind all the design principles.
Can you please explain.
Thanks.